方法1:taskset命令

判断进程被绑定在哪个或哪些CPU核上,可以使用以下命令:

snippet.bash
taskset -c -p <pid>

注:显示的CPU核编号从0开始。

例如,

snippet.bash
[yz@test-4 yz]$ taskset -c -p 980978
pid 980978's current affinity list: 0,2-63
[yz@test-4 yz]$ taskset -c -p 981996
pid 981996's current affinity list: 1

方法2:ps命令

ps命令的PSR可以看出进程当前运行在哪个核上,命令格式:

snippet.bash
ps -o pid,psr,comm -p <pid>

注:显示的CPU核编号从0开始。

例如,

snippet.bash
[yz@test-4 yz]$ ps -o pid,psr,comm -p 980978
    PID PSR COMMAND
 980978  27 postgresql
 
[yz@test-4 yz]$ ps -o pid,psr,comm -p 981996
    PID PSR COMMAND
 981996   1 postgresql

方法3:top命令

如果需要持续监视,可以使用top命令。步骤如下:

  1. 运行top。
  2. 按“F”键。
  3. 上下键选中“P”,按“空格”键选中。可以使用“→”键选中以调整顺序,然后按“↑ ↓”键调整顺序。
  4. 按“Q”键退出选择。

效果:

img

注:显示的CPU核编号从0开始。

方法4:htop命令

也可以使用htop命令持续监视。步骤如下:

  1. 运行htop。
  2. 按“F2”键。
  3. 选择“Columns”,增加“PROCESSOR”列。
  4. 按“F10”保存设置,退出。

这样就增加了“CPU”列,效果:

img

注:显示的CPU核编号从1开始。

参考