ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

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

2022-01-13 20:31:34  阅读:190  来源: 互联网

标签:pid list 11498 affinity taskset Linux 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

标签:pid,list,11498,affinity,taskset,Linux,CPU
来源: https://blog.csdn.net/Aliven888/article/details/117303529

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有