taskset 命令来自英文词组 task set 的缩写,其功能是用于绑定进程与 CPU 核心。常见情况下,一个服务程序发起的进程会在 CPU 核心之间切换执行,每个进程平均公平地分配到一定量的计算性能,而如果运维人员想将某个进程与指定 CPU 核心进行绑定操作,就可以用 taskset 来完成了。绑定完的进程将只在与其绑定的 CPU 核心上运行,这种需求还真不多。

语法格式:

1
taskset [参数] 进程号 CPU 核心号

常用参数:

1
2
3
4
-c 将掩码转成数字形式
-h 显示帮助信息
-p 保留当前进程 PID 号码
-V 显示版本信息参考示例查询指定进程当前使用的 CPU 核心信息: 

查询指定进程当前使用的 CPU 核心信息:

1
2
[root@linuxcool ~]# taskset -pc 1518
pid 1518's current affinity list: 0-3  

设置指定进程只可运行在编号为 2 的 CPU 核心之上:

1
2
3
[root@linuxcool ~]# taskset -pc 2 1518
pid 1518's current affinity list: 0-3
pid 1518's new affinity list: 2