【发布时间】:2014-04-01 01:40:24
【问题描述】:
Linux 有许多线程和进程在(比如说 2 个)CPU 内核上执行。我希望我的单线程 C/C++ 应用程序成为 CPU0 上的唯一线程。我将如何“移动”所有其他线程以使用 CPU1?
我知道我可以使用 Linux CPU 调度功能来设置线程的亲和性:
int sched_setaffinity(pid_t pid,size_t cpusetsize,cpu_set_t *mask);
但是我怎样才能将所有其他线程推送到 CPU1 上呢?有没有相对简单的方法来做到这一点?
我是否必须获取所有 pid 的列表,遍历将它们全部设置为 CPU1,然后将我的应用程序线程设置为 CPU0?
【问题讨论】:
-
nice -n -20 <command>也许? -
答案很可能是
cgroups,虽然我不知道更多关于他们的信息来进一步帮助你! -
我的意思是 C/C++ 答案:)
标签: c linux performance cpu affinity