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 子系統出現了某些問題。