运行进程在不同的终端中使用两个CPU

时间:2016-11-24 18:17:48

标签: linux terminal centos multiprocessing

我有一个复杂的脚本(脚本只是示例,它可能是一个解压缩命令等,而另一个终端上有不同的命令;它们没有连接)和两个CPU。我可以在两个不同CPU的终端上运行两个不同的进程(或命令等)吗? (同时)这可能吗?可以在每个终端中指定一个特定的处理器进行处理吗?

2 个答案:

答案 0 :(得分:3)

即使在同一个终端上,您也可以使用" taskset"

运行2个或更多命令

从手册页(http://linuxcommand.org/man_pages/taskset1.html): taskset用于设置或检索正在运行的pro-的CPU亲和性        cess给出其PID 或启动具有给定CPU关联的新COMMAND-        两者均即可。 CPU亲和力是一种调度程序属性,它可以粘合"一个过程到一个        在系统上给出一组CPU。 Linux调度程序将尊重        给定CPU亲和力,该进程不会在任何其他CPU上运行。        请注意,Linux调度程序还支持自然CPU亲和性:        调度程序尝试将进程保持在同一个CPU上,只要实际操作        cal出于性能原因。因此,强制特定的CPU关注 -        ity仅在某些应用程序中有用。

@eddiem已经分享了关于如何安装任务集的链接(http://xmodulo.com/run-program-process-specific-cpu-cores-linux.html),该链接还解释了如何运行它

简而言之: $ taskset 0x1 tar -xzvf test.tar.gz

那会发送tar命令在CPU 0上运行

如果你想使用不同的CPU在同一个终端上运行多个命令/脚本,那么我认为你可以将它们发送到后台"&"在最后,例如

$ taskset 0x1 tar -xzvf test.tar.gz&

答案 1 :(得分:1)

您可以使用taskset程序来控制特定进程的CPU亲和性。如果将shell进程控制终端A的关联设置为核心0,将终端B设置为核心1,则从A开始的任何子进程应在核心0和核心1上的B上运行。

http://xmodulo.com/run-program-process-specific-cpu-cores-linux.html