問題:有一個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是如何分配的。
