如何在Linux上设置进程的处理器相似性?


Answers:


24

我为此使用了任务集。如果您安装了任务集,则类似于:

taskset -c 1,3 -p 45678

会将ID为45678的进程设置为与cpus 1和3密切相关。


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%的性能提升。


3

您需要安装schedutils(Linux Scheduler Utility)。我已经在我的Ubuntu桌面上使用它。

SF 链接


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.