我正在使用具有 n 个处理器(/proc/cpuinfo 列出的 15 个)的 Linux 计算机 (Ubuntu)。我必须运行多个应用程序,并希望在每个处理器中运行一个。有没有办法为每个应用程序分配一个处理器,或者它是 Linux 自动执行的?
非常感谢
您正在寻找的东西称为亲和力。
Linux 应该已经自行处理了这个问题,但是有一些方法可以改变进程的亲和性 ( sched_setaffinity
) 以及命令行工具taskset(1)
。
taskset 用于在给定 PID 的情况下设置或检索正在运行的进程的 CPU 亲和性,或启动具有给定 CPU 亲和性的新命令。
使用taskset
您可以启动一个只能在您指定的核心上运行的进程。
我不完全确定它们是完成这项工作的最佳工具,但您可能还想调查一下cgroups
. 我几乎可以肯定它们还允许在某些 CPU 上固定进程。