我正在尝试使用taskset将某些进程分配给特定的CPU。 当我运行taskset时,似乎命令已经工作,因为我得到一个答复,说明什么是新的亲和力设置。
但是,当我监视顶部输出(我试图分配一个CPU的进程,以高cpu百分比运行),我可以看到该进程仍在切换cpus,因此它看起来像任务集不工作。
当在网上search类似的问题时,我在红帽网站上看到一个posthttps://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_MRG/1.1/html/Realtime_Tuning_Guide/sect-Realtime_Tuning_Guide-Realtime_Specific_Tuning-Non_Uniform_Memory_Access html的
这表明,任务集不能在numa启用的系统上工作。 这是这种情况吗? 我无法从其他地方find这个。
我正在使用的taskset命令是
taskset -pc 1-2 16723 pid 16723的当前关联性列表:0-7 pid 16723的新关联性列表:1,2
我也试过:
taskset -p 0x00000001 16723
OS的版本是:
说明:Ubuntu 12.04.1 LTS版本:12.04
内核版本:Linux hadoop 3.2.0-29-generic#46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012 x86_64 x86_64 x86_64 GNU / Linux
在我看看使用cgroup之前,我会认为taskset至less可以为进程分配cpu亲和力?
谢谢,
还要确认numa没有在我的主机上禁用从http://martincarstenbach.wordpress.com/2012/04/27/little-things-i-didnt-know-difference-between-_enable_numa_support-and-numactl/
more / proc / cmdline
BOOT_IMAGE = / boot / vmlinuz-3.2.0-29-generic root = UUID = 3221e122-b2fb-48b7-b761-16c57ef51f9a ro quiet splash vt.handoff = 7
确认这是在物理主机上。
运行命令“numastat” – 如果你的系统是numa,你应该在结果中看到它。 就像你怀疑的那样 – 如果你的系统是numa,使用numactl来设置你的进程在一系列的cpus上运行。