实用妙招:Linux下如何查看进程运行在哪个cpu核?
方法1:使用 ps 命令(快速查看)
ps -o pid,psr,comm -p <PID>
- 字段说明:
- PID:进程ID
- PSR:当前运行的CPU编号(从0开始)
- COMM:进程名称
- 示例:
root@u2204:~# ps -o pid,psr,comm -p 1070
PID PSR COMMAND
1070 7 sshd
方法2:使用 top 命令(实时监控)
top -p 1070
- 运行 top 命令
- 按
F
进入字段管理界面 - 用
上下方向键
移动光标到P(Last used CPU) - 按
空格键
选择 P(Last used CPU)字段 - 移动P(Last used CPU)到%CPU (CPU Usage)右侧显示
- 保持当前光标在P(Last used CPU)字段
- 按
→右方向键
激活选中 - 按
↑↓上下方向键
移动P(Last used CPU)到%CPU (CPU Usage)下方 - 按
←左方向键
取消选中
- 按
Esc
返回主界面,观察 P(Last used CPU)列
- 按
方法3:查看 /proc 文件系统(ps和top都是读取这里的信息)
cat /proc/<PID>/stat | awk '{print $39}'
输出结果的第39个字段表示进程最近一次运行的CPU编号。
root@u2204:~# cat /proc/1070/stat | awk '{print $39}'
7
方法4:使用 taskset(查看CPU亲和性)
taskset -p <PID>
显示允许运行的CPU列表(掩码形式),例如 0x3 表示允许在CPU 0和1运行。
root@u2204:~# taskset -p 1070
pid 1070's current affinity mask: ff
0xff 表示允许在CPU 0~7上运行。