我使用任务集将CPU核心4-7分配给通常使用大约200-400% CPU的java进程。内核4-7是在启动时隔离的,因此只有java进程才能在其上运行。
最终,任务集似乎将生成的java进程锁定到四个核心之一,而不是将其分配给所有核心。
我使用的命令如下所示:
taskset -c 4,5,6,7 java [...] -jar [...]使用taskset -c 4,5,6,7 stress -c 4的行为是相同的,并且只使用一个核心。
如何将所有四个核心分配给java进程?
发布于 2014-10-13 21:19:52
我自己找到了答案:它只是添加了-a选项,就像帮助(taskset -h)中提到的那样
“对给定pid的所有任务(线程)进行操作
所以工作命令是
taskset -cpa 4-7 $(pgrep -n java) 这里使用pgrep获取最新启动的java进程的PID。
我希望这个答案可以帮助那些试图为一个进程及其所有线程分配多个CPU核心的人,而不需要使用复杂的容器、系统或VM。
https://askubuntu.com/questions/532838
复制相似问题