24 我为此使用了任务集。如果您安装了任务集,则类似于: taskset -c 1,3 -p 45678 会将ID为45678的进程设置为与cpus 1和3密切相关。 — 克伯德 source 1 匿名编辑建议该命令必须是taskset -p -c 1,3 45678而不是taskset -c 1,3 -p 45678; 也就是说,-c 1,3是遮罩规范,因此必须放在-p和之间pid。 — G-Man说'Resstate Monica''Oct
7 在流程内部,调用将为sched_setaffinity(),或者对于pthreads而言,pthread_setaffinity_np() 与此相关的是,如果您担心程序的CPU亲和力,那么也有必要注意程序的内存分配方式。内存连接到一个以上控制器的大型系统(即,多个CPU插槽,每个插槽都有自己的插槽)在不同的CPU内存对之间具有不同的延迟和带宽。您还需要使用numactl与其配合使用的命令或系统调用来研究NUMA关联。我从事的一个程序从中获得了10%的性能提升。 — 菲尔·米勒 source
1 taskset -c 1-3 ./a.out arg1 arg2 a.out以给定的参数和对处理器1、2或3(从零开始)的相似性启动进程。 这是一个最小的C测试程序,可以用来查看其运行情况:https : //stackoverflow.com/questions/10490756/how-to-use-sched-getaffinity-and-sched-setaffinity-in-linux-from -c / 50117787#50117787 — Ciro Santilli新疆改造中心法轮功六四事件 source
taskset -p -c 1,3 45678
而不是taskset -c 1,3 -p 45678
; 也就是说,-c 1,3
是遮罩规范,因此必须放在-p
和之间pid
。