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