linux 进程 绑定cpu,linux应用如何进行CPU绑定

所谓CPU绑定,其实就是对进程或者线程设置相应的CPU亲和力,确保进程或者线程只会在设置了相应标志位的CPU上运行,进而提高应用对CPU的使用率。如果应用可以在多个CPU上运行,操作系统会在CPU之间频繁切换应用,引起CPU缓存失效,降低缓存的命中率,导致CPU的使用率下降。所以,如果使用CPU绑定技术,在一定程度上会避免上述问题,提高系统性能,类似技术还有GPU绑定、mic绑定等等。

1、安装taskset命令

yum install util-linux

如果系统没有taskset明林,使用yum方式安装util-linux即可,这是一个工具集,其中包含taskset命令

2、查看应用的CPU亲和力

$ taskset -p 14795

pid 14795's current affinity mask: 3

$ taskset -cp 14795

pid 14795's current affinity list: 0,1

实例中,查看进程为14795的CPU亲和力,使用-p选项指定需要查询的进程号,默认打印的是一个十六进制数,如果使用-cp选项打印的一个CPU列表,表示相应的CPU核。3的二进制形式是0011,相应的第0位和第1位都是1,对应了-cp打印的0和1,表示14795进程只能运行在CPU的第0个核心和第1个核心上。

3、将应用绑定到指定的CPU运行

$ taskset -p 0x1 14795

pid 14795's current affinity mask: 3

pid 14795's new affinity mask: 1

或者

$ taskset -cp 0 14795

pid 14795's current affinity list: 0,1

pid 14795's new affinity list: 0

实例中,通过taskset命令重新设置了进程14795的CPU亲和力,前后2种方式设置效果一样,都表示进程14795只能运行在cpu的第0个核。因为-p指定的二进制形式是0001,第0位是1,表示第0个CPU核。-cp直接指定了0,也表示第0个CPU核。

除了通过taskset命令绑定应用到指定的CPU上,也可以通过taskset命令启动应用,并指定应用运行的CPU,例如:

$ taskset 0x1 sleep 10000 &

[2] 14925

$ taskset -p 14925

pid 14925's current affinity mask: 1

$ taskset -cp 14925

pid 14925's current affinity list: 0

示例中,通过taskset启动应用(使用sleep命令模拟应用),并设置相应的cpu亲和力,即进程14925只能运行在cpu的第0个核。启动程序后查看进程的cpu亲和力,和启动时设置的相同。

除了通过taskset启动应用(使用sleep命令模拟应用),并设置相应的CPU亲和力,即进程14925只能运行在CPU的第0个核心上。启动程序后查看进程的CPU亲和力,和启动时设置的相同。

另外,除了通过taskset命令实现CPU绑定,很多语言都提供了相应的api实现CPU绑定

标签:绑定,pid,14795,affinity,taskset,linux,CPU

来源: https://www.cnblogs.com/liushiya/p/12827164.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值