龙空技术网

使用taskset将进程绑定到指定cpu上运行

猪瘾犯了 179

前言:

眼前我们对“linux cpu调度”大约比较关注,我们都想要了解一些“linux cpu调度”的相关资讯。那么小编也在网摘上汇集了一些对于“linux cpu调度””的相关内容,希望朋友们能喜欢,小伙伴们一起来了解一下吧!

taskset的作用

taskset用于在给定的PID下设置或检索正在运行的进程的CPU关联性,或者启动具有给定CPU关联性的新COMMAND。CPU关联性是一个调度器属性,它将进程“绑定”到系统上的一组给定CPU上。Linux调度器将遵循给定的CPU关联性,并且该进程不会在任何其他CPU上运行。需要注意的是,Linux调度器还支持自然的CPU关联性:为了性能考虑,只要可行,调度器就会尝试将进程保持在同一个CPU上。因此,强制特定的CPU关联性只在某些应用程序中有用。

CPU关联性用位掩码表示,最低序位对应第一个逻辑CPU,最高序位对应最后一个逻辑CPU。并非所有的cpu都可能存在于给定的系统中,但是掩码可能指定比当前更多的cpu。检索到的掩码将只反映系统上物理上与cpu对应的位。如果给出了无效的掩码(即当前系统上没有有效cpu对应的掩码),则返回错误。掩码通常以十六进制给出。例如,

0 x00000001 cpu0

0 x00000003 cpu0和cpu1

0 xffffffff cpu0到cpu31

当命令返回时,可以保证给定的程序被调度到合法的CPU上。

taskset参数

-a, --all-list绑定或查看某一进程所有线程的CPU关联性。

-p, --pid 对已有的PID进行操作,不启动新任务。

-c, --cpu-list 指定处理器的数字列表,而不是位掩码。数字之间用逗号分隔,也可以包括范围。例如:0、5、7、9 - 11。

-h, --help 显示使用信息并退出。

-V, --version 显示版本信息并退出。

使用举例

1、将命令绑定到指定cpu上运行:

taskset 03 echo “test”

2、查看进程绑定的cpu:

taskset -p 700

3、设置进程绑定的cpu:

taskset -p 03 700

4、将进程绑定到一组cpu:

taskset -pc 0,3,7-11 700

标签: #linux cpu调度