linux查task绑核信息,Linux:taskset 查询或设置进程(线程)绑定CPU(亲和性)

Linux:taskset 查询或设置进程(线程)绑定CPU(亲和性)

通过 taskset 命令可将某个进程与某个CPU核心绑定,使得其仅在与之绑定的CPU核心上运行。

线程是最小的内核执行调度单元,因此,准确地说是将某个线程与某个CPU核心绑定,而非某个进程。

taskset 是依据 线程PID(TID)查询或设置线程的CPU亲和性(与哪个CPU核心绑定)。

查询 PID(TID)= 11498 的线程可用的CPU核心

[test1280@localhost ~]$ taskset -pc 11498

pid 11498's current affinity list: 0-3

由于当前主机仅有4个核心:

[test1280@localhost ~]$ cat /proc/cpuinfo | grep process

processor: 0

processor: 1

processor: 2

processor: 3

默认情况下,TID=11498的线程可以运行在任意的CPU核心上(0-3)。

-p, --pid operate on an existing PID and not launch a new task

-c, --cpu-list specify a numerical list of processors instead of a bitmask.

The list may contain multiple items, separated by comma, and ranges.

For example, 0,5,7,9-11.

查询 PID(TID)= 11498 的线程可用的CPU核心,掩码形式表示

[test1280@localhost ~]$ taskset -p 11498

pid 11498's current affinity mask: f

0x0F(十六进制) => 1111(二进制),最右起第一个1表示CPU核心#0,第二个1表示CPU核心#1…

设置 PID(TID)= 11498 的线程可用的CPU核心到#0、#2上

[test1280@localhost ~]$ taskset -pc 0,2 11498

pid 11498's current affinity list: 2

pid 11498's new affinity list: 0,2

设置 PID(TID)= 11498 的线程可用的CPU核心到除#0之外的核心上,掩码形式表示

[test1280@localhost ~]$ taskset -p 7 11498

pid 11498's current affinity mask: 5

pid 11498's new affinity mask: 7

原来的是0、2,即0101(掩码十进制5),现在的是0111,即掩码十进制7。

taskset 不仅可通过PID查询运行中的线程的CPU亲和性,也可以运行一个新的进程。

可参考 man taskset 或执行 taskset -h。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值