Linux 编程 —— taskset 查询或设置进程绑定CPU(亲和性)
2022/1/14 7:05:40
本文主要是介绍Linux 编程 —— taskset 查询或设置进程绑定CPU(亲和性),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文档声明:
以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。感谢各位的参考查看。
笔记资料仅供学习交流使用,转载请标明出处,谢谢配合。
如果存在相关知识点的遗漏,可以在评论区留言,看到后将在第一时间更新。
作者:Aliven888
通过 taskset 命令可将某个进程与某个 CPU 核心绑定,使得其仅在与之绑定的 CPU 核心上运行。线程是最小的内核执行调度单元,因此,准确地说是将某个线程与某个 CPU 核心绑定,而非某个进程。taskset 是依据线程 PID(TID)查询或设置线程的 CPU 亲和性(与哪个 CPU 核心绑定)。
taskset 指令介绍:
>> taskset --help Usage: taskset [options] [mask | cpu-list] [pid|cmd [args...]] Show or change the CPU affinity of a process. Options: -a, --all-tasks operate on all the tasks (threads) for a given pid -p, --pid operate on existing given pid -c, --cpu-list display and specify cpus in list format -h, --help display this help -V, --version display version The default behavior is to run a new command: taskset 03 sshd -b 1024 You can retrieve the mask of an existing task: taskset -p 700 Or set it: taskset -p 03 700 List format uses a comma-separated list instead of a mask: taskset -pc 0,3,7-11 700 Ranges in list format can take a stride argument: e.g. 0-31:2 is equivalent to mask 0x55555555 For more details see taskset(1).
查询 PID(TID)= 11498 的进程可用的CPU核心
>> taskset -pc 11498 >> # 默认情况下,TID=11498的线程可以运行在任意的CPU核心上(0-3) >> pid 11498's current affinity list: 0-3
查询 PID(TID)= 11498 的进程可用的CPU核心,掩码形式表示
>> # 0x0F(十六进制) => 1111(二进制),最右起第一个1表示CPU核心#0,第二个1表示CPU核心#1 … >> taskset -p 11498 >> pid 11498's current affinity mask: f
设置 PID(TID)= 11498 的进程可用的CPU核心到#0、#2上
>> 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之外的核心上,掩码形式表示
>> # 原来的是0、2,即0101(掩码十进制5),现在的是0111,即掩码十进制7。 >> taskset -p 7 11498 >> pid 11498's current affinity mask: 5 >> pid 11498's new affinity mask: 7
这篇关于Linux 编程 —— taskset 查询或设置进程绑定CPU(亲和性)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南