问题:有一个Linux进程运行在多核处理器系统上,如何查看该进程运行在哪个CPU上?
方法一:
ps 命令可以告诉你每个进程/线程目前分配到的(在“PSR”列)CPU ID。
ps -o pid,psr,comm -p <pid>
运行结果:
PID PSR COMM
5357 10 prog
输出表示进程的 PID 为 5357(名为”prog”)目前在编号为 10的CPU 上运行着。如果该过程没有被固定,PSR 列会根据内核可能调度该进程到不同CPU而改变显示。
方法二:
top 命令也可以显示CPU被分配给哪个进程。首先,在top命令中使用"P"选项。然后,按“F”键,显示中会出现“Last used CPU”列。目前使用的CPU将出现在"P"(或“PSR”)列下。
步骤如下:
1、top -p 3393
2、按下 “F”键
3、使用上下键选择P = Last Used Cpu,并按下空格键,出现 “*”即可
4、按下“Q”键
相比于ps命令,使用top命令的好处是:你可以连续监视随着时间的改变,CPU是如何分配的。