Linux任务集,用于检索或者设置进程的CPU关联性

时间:2020-01-09 10:43:50  来源:igfitidea点击:

问题描述:如何使用Linux(RHEL)tasket命令设置或者获取给定PID的运行进程的CPU亲和力,或者使用给定的CPU亲和力启动新命令?

解决方法:您需要使用taskset命令。

CPU亲缘关系是一个调度程序属性,它将进程绑定到系统上给定的一组CPU。

Linux调度程序将遵守给定的CPU关联性,并且该进程将不会在任何其他CPU上运行。
请注意,Linux调度程序还支持自然的CPU关联性:出于性能原因,调度程序会尝试将进程尽可能长时间地保持在同一CPU上。
因此,强制特定的CPU亲缘关系仅在某些应用程序中有用。

检索现有任务的CPU关联性

常规语法如下:taskset -p [pid]要检索现有任务的CPU关联性(PID 12345),请执行:

# taskset -p 12345

使用taskset命令与CPU建立关联

通用语法如下:taskset -c [0,1,2,3..N] [pid]其中,

  • -c 0,1,2,.. N:掩码通常以十六进制形式给出。例如,0x00000001是处理器#0,0x00000003是处理器#0和#1等。但是,-c选项允许您指定处理器的数字列表,而不是位掩码。该列表可能包含多个项目,以逗号和范围分隔。例如0,5,7,9-11。 `
  • pid:进程/程序ID

例如,在2-3 CPU上设置PID 12345,执行:

# taskset -c 2,3 12345