判斷Linux進程在哪一個CPU核運行的方法

問題:有一個Linux進程運行在多核處理器系統上,如何查看該進程運行在哪一個CPU上?bash

方法一:

ps 命令能夠告訴你每一個進程/線程目前分配到的(在「PSR」列)CPU ID。線程

ps -o pid,psr,comm -p <pid>

運行結果:code

PID PSR COMMblog

5357  10  prog進程

輸出表示進程的 PID 爲 5357(名爲」prog」)目前在編號爲 10的CPU 上運行着。若是該過程沒有被固定,PSR 列會根據內核可能調度該進程到不一樣CPU而改變顯示。ast

方法二:

top 命令也能夠顯示CPU被分配給哪一個進程。首先,在top命令中使用"P"選項。而後,按「F」鍵,顯示中會出現「Last used CPU」列。目前使用的CPU將出如今"P"(或「PSR」)列下。class

步驟以下:sed

一、top -p 3393psr

二、按下 「F」鍵方法

三、使用上下鍵選擇P = Last Used Cpu,並按下空格鍵,出現 「*」便可

四、按下「Q」鍵

相比於ps命令,使用top命令的好處是:你能夠連續監視隨着時間的改變,CPU是如何分配的。

相關文章
相關標籤/搜索