作为序言,我在 AMD64 芯片组上使用带有内核 3.2 的 Debian Wheezy。我的机器有两个至强 E5-2690 内核。我设置了启动参数,以便一个 CPU 上的所有内核专用于单个进程。为此,我在 grub 中设置了 isolcpus=8,9,10,11,12,13,14,15。
到现在为止还挺好。现在假设我想对给定命令使用隔离的 CPU,简单地说,我将使用一个简单的无限循环:
$ taskset -c 8-15 bash -c 'while true ; 做回声你好>/dev/null; 完毕' &
到目前为止一切顺利,top 表明核心 8 的利用率接近 100%。现在假设我再次启动该命令:
$ taskset -c 8-15 bash -c 'while true ; 做回声你好>/dev/null; 完毕' &
现在 top 显示内核 9-15 保持空闲并且两个进程共享内核 8。如果相反,我这样做:
$ taskset -c 8 bash -c 'while true ; 做回声你好>/dev/null; 完毕' &
$ taskset -c 9 bash -c 'while true ; 做回声你好>/dev/null; 完毕' &
核心 8 和 9 各获得 …
是否有可以更改的设置(或可以添加的 reg 键)来设置服务的处理器关联?我想设置亲和力,并在重新启动后保持此设置(因此在启动服务后手动更改亲和力对我不起作用)。
windows service windows-server-2008-r2 affinity windows-server-2012-r2
我已经查看了everyware并阅读了一堆关于此的文档,但还没有找到直接的答案,所以这里是:
vCenter 的“资源”选项卡中有一个设置,可让您配置超线程核心共享。我将此设置为“ANY”。
我的问题是关于调度亲和性。如果我将要分配特定内核的文本字段留空,会发生什么情况?
VMWare 是处理所有逻辑核心的超线程还是禁用超线程?
注意:Scheduling Affinity Group Box 说
超线程状态:活动
可用 CPU:##(逻辑 CPU)
我正在尝试在使用 OpenVZ 虚拟化并运行 CentOS 6.x 的 4vCpu VPS 上设置 mysql(最新的 Percona 服务器)的关联。
我正在运行的命令是taskset -pc 0-1 1026. 我也试过0,1。输出是:
pid 1026's current affinity list: 0-3
pid 1026's new affinity list: 0-3
Run Code Online (Sandbox Code Playgroud)
所以,它似乎没有“粘住”。可以通过再次运行 taskset 以找到进程可用的 CPU 来确认。这可能是我的虚拟化类型的问题吗?
我这样做是因为我时不时地需要 mysql 来非常努力地运行,并且超过 2.0-4.0 超过 2 个小时让我重新启动我当前的提供程序。
是否有明确的原因为什么这不起作用,或者需要更多的故障排除?
我有一个在我的服务器上运行的程序,我想运行同一个程序的多个实例(它的应用程序只能在单个内核上运行..),我想知道我是否可以在运行时将它们分配给一个内核?使用批处理脚本什么的?我正在运行 Windows Server 2012。