【我的Linux,我做主!】CPU監控命令之pidstat、mpstat命令

目錄:
(一)pidstat簡介
(二)mpstat簡介


(一)pidstat簡介
(1.1)pidstat主要用於監控全部或指定進程佔用系統資源的情況,如CPU、內存、設備IO、任務切換、線程等,pidstat首次運行時顯示自系統啓動開始的各項統計信息,之後運行pidstat將顯示自上次運行該命令以後的統計信息。用戶可以通過指定統計的次數和時間來獲得所需的統計信息。
(1.2)常用的命令格式
# pidstat [參數] [時間] [次數]
(1.3)命令參數
常見的命令參數如下:
-u:默認的參數,顯示各個進程的CPU使用統計
-r:顯示各個進程的內存使用統計
-d:顯示各個進程的IO使用情況
-p:指定進程號
-w:顯示每個進程的上下文切換情況
-t:顯示選擇任務的線程的統計信息外的額外信息
(1.4)使用實例
(1.4.1)實例1:直接使用pidstat命令,其中pidstat和pidstat -u -p ALL是等效的,默認顯示所有進程的CPU使用率。
# pidstat -u -p ALL
說明:
UID:用戶ID
PID:進程ID
%user:進程在用戶空間佔用CPU的百分比
%system:進程在內核空間佔用CPU的百分比
%guest:任務花費在虛擬機上的CPU使用率(運行在虛擬處理器)
%CPU:任務總的CPU使用率
CPU:正在運行這個任務的處理器編號
Command:這個任務的命令名稱
【我的Linux,我做主!】CPU監控命令之pidstat、mpstat命令
【我的Linux,我做主!】CPU監控命令之pidstat、mpstat命令
(1.4.2)實例2:查看進程內存使用情況信息
# pidstat -r
minflt/s:從內存中加載數據時每秒出現的次要錯誤的數目,這些不要求從磁盤載入內存頁面
majflt/s:從內存中加載數據時每秒出現的主要錯誤的數目,這些要求從磁盤載入內存頁面
VSZ:虛擬地址大小,虛擬內存的使用KB
RSS:長期內存使用,任務的不可交換物理內存的使用量KB
%MEM:進程使用的物理內存百分比,top命令也會輸出該字段
【我的Linux,我做主!】CPU監控命令之pidstat、mpstat命令
(1.4.3)實例3:查看進程IO情況信息
# pidstat -d
kB_rd/s:進程每秒從磁盤讀取的數據量(以kB爲單位)
kB_wr/s:進程每秒向磁盤寫入的數據量(以kB爲單位)
kB_ccwr/s:任務寫入磁盤被取消的速率(kB);當任務截斷髒的pagecache的時候會發生
【我的Linux,我做主!】CPU監控命令之pidstat、mpstat命令
(1.5)pidstat常用命令
使用pidstat進行問題定位時,以下命令常被用到:
# pidstat -u 1---獲取CPU的統計信息,採集週期爲1秒
【我的Linux,我做主!】CPU監控命令之pidstat、mpstat命令
# pidstat -r 1---獲取內存的統計信息,採集週期爲1秒
【我的Linux,我做主!】CPU監控命令之pidstat、mpstat命令
# pidstat -d 1---獲取磁盤IO的統計信息,採集週期爲1秒
【我的Linux,我做主!】CPU監控命令之pidstat、mpstat命令


(二)mpstat簡介
(2.1)mpstat命令主要用於多CPU環境下,它顯示各個可用CPU的狀態。這些信息存放在/proc/stat文件中。在多CPU系統中,其不但能查看所有CPU的平均狀況信息,而且能夠查看特定CPU的信息。
(2.2)常用命令格式:
mpstat [選項] [參數]
(2.3)命令參數:當沒有參數時,mpstat則顯示系統啓動以後所有信息的平均值,有internal時,第一行的信息自系統啓動以來的平均信息,從第二行開始,輸出爲前一個internal時間段的平均信息。
-P {0|1|ALL}:表示監控哪個CPU,CPU在[0,(CPU個數-1)]中取值
【我的Linux,我做主!】CPU監控命令之pidstat、mpstat命令
internal:相鄰的兩次採樣的間隔時間
count:採樣的次數,count只能和delay一起使用
(2.4)使用實例:
(2.4.1)實例1:直接使用mpstat命令,當mpstat不帶參數時,輸出爲從系統啓動以來的平均值。
【我的Linux,我做主!】CPU監控命令之pidstat、mpstat命令
(2.4.2)實例2:查看多核CPU核心的當前運行狀況信息,每2秒更新一次,生成一次信息
# mpstat -P ALL 2 1
說明:
%user:在internal時間段裏(相鄰的兩次採樣的間隔時間),用戶態的CPU時間(%),不包含nice值爲負進程---(user/total)*100
%nice:在internal時間段裏,nice值爲負進程的CPU時間(%)---(nice/total)*100
%sys:在internal時間段裏,內核時間(%)---(system/total)*100
%iowait:在internal時間段裏,硬盤IO等待時間(%)---(iowait/total)*100
%irq:在internal時間段裏,硬中斷時間(%)---(irq/total)*100
%soft:在internal時間段裏,軟中斷時間(%)---(softirq/total)*100
%idle:在internal時間段裏,CPU除去等待IO操作外的因爲任何原因而空閒的時間閒置時間(%)---(idle/total)*100
【我的Linux,我做主!】CPU監控命令之pidstat、mpstat命令
(2.5)經驗總結:
(2.5.1)vmstat和mpstat命令的差別是:mpstat可以顯示每個處理器的統計,而vmstat顯示所有處理器的統計。因此,編寫了糟糕的應用程序即不使用多線程體系結構的程序,可能會運行在一個多處理器的機器上,而不使用所有處理器,沒有發揮多處理的功效。從而導致一個CPU過載,而其他CPU卻很空閒。通過mpstat可以輕鬆診斷這些類型的問題。
(2.5.2)vmstat中所有關於CPU的總結都適合mpstat。當你看到較低的%idle數字時,您知道出現了CPU不足的問題。當你看到較高的%iowait數字時,你知道在當前負載下I/O子系統出現了某些問題。

—————— 本文至此結束,感謝閱讀 ——————

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章