2025年taskset命令详解

taskset命令详解目录 一 taskset 介绍 二 命令格式 三 什么是绑核 四 如何绑核 五 掩码形式绑核 六 列表形式 七 命令的使用 指定 八 总结 一 taskset 介绍 Taskset 是一个可以将某进程任务指定到某个 CPU 上运行 通过 taskset 命令可将某个进程与某个 CPU 核心绑定

大家好,我是讯享网,很高兴认识大家。

目录

一、taskset介绍

二、命令格式

 三、什么是绑核

四、如何绑核

五、掩码形式绑核

六、列表形式 

七、命令的使用

指定

八、总结


一、taskset介绍

taskset命令需要安装 yum install util-linux -y

讯享网


讯享网

二、命令格式

讯享网语法格式:taskset [options] -p [mask] pid 参数选项: -a, --all-tasks 操作所有的任务线程 -p, --pid 操作已存在的pid -c, --cpu-list 通过列表显示方式设置CPU(逗号相隔) -V, --version 输出版本信息

查看版本信息

 三、什么是绑核

 绑核,其实就是设定某个进程/线程与某个CPU核的亲和力(affinity)。设定以后,Linux调度器就会让这个进程/线程只在所绑定的核上面去运行。但并不是说该进程/线程就独占这个CPU的核,其他的进程/线程还是可以在这个核上面运行的。如果想要实现某个进程/线程独占某个核,就要使用cpuset命令去实现。

其实,很多情况下,为了提高性能,Linux调度器会自动实现尽量让某个进程/线程在同样的CPU上去运行。所以,除非必须,我们没有必要显式的去进行进程绑核操作。

四、如何绑核

taskset用于将某个进程/线程绑定到CPU的某个或某几个核上面,其用法如下:

taskset -p pid

可以查出进程pid现在的绑核情况。

设置绑核有两种方法:

  • 掩码形式
  • 列表形式

五、掩码形式绑核

将掩码转换为二进制形式,从最低位到最高位代表物理CPU的#0、#1、……、#n号核。某位的值为0表示不绑该核,1表示绑。比如:0x00000001的二进制为0000...0001,只有第0号核的位置是1,所以表示只绑0号核;0x00000003的二进制为0000...0011,第0和1号核的位置是1,所以表示绑CPU的0号和1号核;再比如0xFFFFFFFF的二进制为1111...1111,所有32个核的位置都为1,所以表示绑CPU的0~31核。

需要注意的是,并非掩码中给出的CPU核就一定会存在,比如0x00000400理论上代表CPU的第10号核,但是该核在真正的计算机上面并不一定是存在的。而且,如果我们试图将物理上并不存的核绑定给某个进程时,会返回错误。掩码形式的绑核命令为:

讯享网taskset -p mask pid

六、列表形式 

列表形式指直接指定要绑的CPU核的列表,列表中可以有一个或多个核。具体语法如下:

taskset -cp cpu-list pid

其中cpu-list是数字化的cpu列表,从0开始。多个不连续的cpu可用逗号连接,连续的可用短现连接,比如0,2,5-11等。

比如taskset -cp 0,2,5-11 9865命令表示将进程9865绑定到#0#2#5~#11号核上面。

七、命令的使用

讯享网taskset -pc 8357 以列表形式显示进程在哪几块cpu上运行

List :1 表示其在cpu1上运行

taskset -p 8357 

mask为十六进制,4=0010,表示其在cpu2上运行
注:cpu是从0开始计数
小结:taskset -p pid 以十六进制查看进程在哪块cpu上运行
taskset -pc pid 以列表形式查看进程在哪块cpu上运行,显示几就是cpu几,比如显示1,3就表示在cpu1和cpu3上运行.

指定

taskset -pc 01 10967 指定10967进程在cpu0上运行

 taskset -p b 10967 指定9116进程在cp0 、cpu1、cpu3上运行

八、总结

小讯
上一篇 2025-03-11 14:19
下一篇 2025-02-26 23:56

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/48707.html