面试官:
在 Linux 中,如何让进程运行在指定的 CPU 核上?
应聘者回答参考:
可以通过 taskset
命令 来实现进程的 CPU 亲和性绑定。
1. 获取进程 PID
ps -ef | grep process_name
2. 查看进程当前绑定的 CPU
taskset -p 2726
-
输出示例:
pid 2726's current affinity mask: 3
-
这里的 3 是十进制数,换算为二进制是
11
,表示该进程可以运行在 CPU0 和 CPU1 上。 -
二进制掩码中,每一位对应一个 CPU 核:
1
表示允许运行0
表示禁止运行
3. 绑定进程到指定 CPU
taskset -pc 1 2726
-p
:修改已存在进程的绑定-c 1
:绑定到 CPU1(注意编号从 0 开始,所以 CPU1 实际上是第二个 CPU)
4. 启动时绑定
在启动进程时就指定 CPU:
taskset -c 1 ./test
→ 进程 ./test
将直接绑定在 CPU1 上运行。
总结:
taskset -p <pid>
→ 查看进程 CPU 绑定情况taskset -pc <cpu-id> <pid>
→ 修改已运行进程的 CPU 绑定taskset -c <cpu-id> command
→ 启动时指定运行 CPU
😀 关注 @公众号 程序员陈子青,获取更多 C++ 技术支持。