您好,登錄后才能下訂單哦!
今天小編給大家分享一下linux如何查看進程在哪個cpu上的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
查看方法:1、利用top命令,該命令可以顯示進程在哪個CPU上運行,語法為“top -p 進程號”;2、利用taskset命令,該命令用于查看進程或線程運行在哪個CPU上,語法為“taskset -p 進程號”。
本教程操作環境:linux7.3系統、Dell G3電腦。
方法一:使用top命令
top 命令可以顯示進程在哪個CPU上運行,可以連續監視隨著時間的改變,該進程運行在哪個cpu上是否發生變化。
使用步驟:
top -p [進程號],例如 top -p 3000
按下"F"鍵,使用上下鍵選擇P = Last Used Cpu,并按下空格鍵,出現 “*”即代表選中,再按“q"退出。
方法二:使用taskset命令
taskset可以查看具體某一進程(或 線程)運行在哪個cpu上,也可以使某個程序運行在某個或某些cpu上
taskset 參數選項:
(1)-p, --pid :操作現有的PID,不啟動新任務
(2)-c, --cpu-list :指定處理器的數字列表,而不是位掩碼。列表可以包含多個項目,以逗號和范圍分隔。例如,0、5、7、9 - 11。
1)顯示進程運行的CPU: -p參數
例子1:
[root@localhost ~]# taskset -p 21184
顯示結果:
pid 21184’s current affinity mask: ffffff
注:21184是進程編號。顯示結果的ffffff實際上是二進制24個低位均為1的bitmask,每一個1對應于1個CPU,表示該進程在24個CPU上運行。
例子2:
[root@localhost ~]# taskset -p 2030
顯示結果:
pid2030’s current affinity mask: f
注:說明sshd在4顆CPU上隨機進行切換。
例子3:
[root@localhost ~]# taskset -p 2726
顯示結果:
pid 2726’s current affinity mask: 3
注:顯示的十進制數字3轉換為2進制為最低兩個是1,每個1對應一個cpu,所以進程運行在2個cpu上。
*注意:*cpu的標號是從0開始的,所以cpu1表示第二個cpu(第一個cpu的標號是0)。
關于換算方式
8個核心的CPU ID: 7 6 5 4 3 2 1 0
對應10的十進制數位: 128 64 32 16 8 4 2 1
十六進制的16個數是:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F
對應每一個16進制的二進制位:0=0000,1=0001,2=0010,3=0011,4=0100,5=0101,6=0110,7=0111,8=1000,9=1001,A=1010,
B=1011,C=1100,D=1101,E=1110,F=1111
那么例如出現pid 8987’s current affinity mask: ff ff是16進制,轉換二進制:11111111,意思就是sshd在8個CPU上進行卻換!所以對應每一個數值!
比如說16進制的40,那么轉換二進制01000000,意思就是在第7塊CPU上運作
以上就是“linux如何查看進程在哪個cpu上”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。