如何在启动时为进程分配处理器

如何在启动时为进程分配处理器

Linux 允许使用以下命令为正在运行的进程(即具有 pid)分配处理器核心:

taskset -pc core pid

这假设进程已在运行,并且其 pid 可用,并且我们更改分配给它的核心。因此,在上下文切换或分时共享期间,进程下次离开 CPU 时,核心将被切换。

但是,是否可以在流程运行时预先分配核心?据我所知,答案是否定的,但我只是想向专家确认一下,以防万一我遗漏了什么。

(我曾在 stackoverflow/69250190 上问过这个问题,但有人建议我在这里发布这个问题。)

答案1

要在进程运行时分配核心,必须使用 taskset 命令

taskset [options] core-mask command [argument...]

CPU 亲和性以位掩码表示,其中最低位对应第一个逻辑 CPU,最高位对应最后一个逻辑 CPU。

例如,以下命令启动在前两个核心上运行的命令:

taskset 03 sshd -b 1024

也可以使用以下-c参数将核心指定为列表:

-c, --cpu-list
    Interpret mask as numerical list of processors instead of a
    bitmask. Numbers are separated by commas and may include
    ranges. For example: 0,5,8-11.

答案2

概要
       任务集 [选项] 掩码命令 [参数...]

       任务集 [选项] -p [掩码] pid

默认模式(没有选项-p)已经是接受 CPU 掩码和命令名称。因此您应该能够使用,例如taskset core /bin/whatever

相关内容