如何将进程移至核心或将进程专用于处理器?

Eng*_*021 6 multi-core rhel5 process

我有一个英特尔 E5620 处理器。我已经用来cat /proc/[pid]/stat确定进程上次运行在哪个处理器上(第 39 个字段)。我如何确保一个进程专用于处理器(我有 8 个可用)或者更好,我如何才能将一个进程专用于一个核心(我有 4 个)?

vor*_*aq7 8

根据您对 MikeyB 回答的评论,您正试图以错误的方式解决这个问题,恕我直言——

双方numactltaskset会你的进程锁定到CPU,但他们不会让其他进程关闭该CPU。
如果在您的进程需要时其他人在该 CPU 上,您将不得不等待。

一个更好的解决方案是将您的进程的nice值设置为会导致它积极占用 CPU 的值(例如 -20),如果这还不够,请将您的进程设置为realtime priority 使用 rtprio,并让调度程序执行它必须执行的操作确保您的进程在请求时始终具有 CPU 周期。

正如 MikeyB 指出的那样,试图超越调度程序通常是一个坏主意。让它做它设计要做的事情,并以正确的方式(nice值和rtprio)请求 CPU 周期。


dya*_*sny 1

阅读man taskset- 它拥有您需要的一切