Linux mpstat 命令

mpstat的語法如下
mpstat [-P {cpu|ALL}] [internal [count]]
其中,各參數含義如下:

參數    含義
-P {cpu l ALL}    表示監控哪個CPU, cpu在[0,cpu個數-1]中取值
internal    相鄰的兩次採樣的間隔時間
count    採樣的次數,count只能和delay一起使用

使用mpstat命令
1.直接使用mpstat命令:

mpstat

當mpstat不帶參數時,輸出爲從系統啓動以來的平均值。

2.使用mpstat -P ALL 5 2命令

mpstat -P ALL 5 2

表示每5秒產生一個報告,總共產生2個。


上圖表示每5秒產生了2個關於處理器的統計數據報告,一共產生2個interval 的信息,然後再給出這2個interval的平均信息。默認時,輸出是按照CPU 號排序。第一個行給出了從系統引導以來的所有活躍數據。接下來每行對應一個處理器的活躍狀態。

輸出參數含義
當沒有參數時,mpstat則顯示系統啓動以後所有信息的平均值。有interval時,第一行的信息自系統啓動以來的平均信息。從第二行開始,輸出爲前一個interval時間段的平均信息。

輸出各參數含義:

參數    釋義    從/proc/stat獲得數據
CPU    處理器ID    
%usr    在internal時間段裏,用戶態的CPU時間(%),不包含 nice值爲負進程    usr/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
%steal    顯示虛擬機管理器在服務另一個虛擬處理器時虛擬CPU處在非自願等待下花費時間的百分比    steal/total*100
%guest    顯示運行虛擬處理器時CPU花費時間的百分比    guest/total*100
%gnice        gnice/total*100
%idle    在internal時間段裏,CPU除去等待磁盤IO操作外的因爲任何原因而空閒的時間閒置時間(%)    idle/total*100

CPU總的工作時間:

total_cur = user + system + nice + idle + iowait + irq + softirq

total_pre = pre_user + pre_system + pre_nice + pre_idle + pre_iowait + pre_irq + pre_softirq

user = user_cur – user_pre

total = total_cur - total_pre
其中_cur 表示當前值,_pre表示interval時間前的值。上表中的所有值可取到兩位小數點。

Note:
1.vmstat和mpstat 命令的差別:mpstat 可以顯示每個處理器的統計,而 vmstat 顯示所有處理器的統計。因此,編寫糟糕的應用程序(不使用多線程體系結構)可能會運行在一個多處理器機器上,而不使用所有處理器。從而導致一個 CPU 過載,而其他 CPU 卻很空閒。通過 mpstat 可以輕鬆診斷這些類型的問題。

2.vmstat中所有關於CPU的總結都適合mpstat。當您看到較低的 %idle 數字時,您知道出現了 CPU 不足的問題。當您看到較高的 %iowait 數字時,您知道在當前負載下 I/O 子系統出現了某些問題。
 

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