mpstat命令詳解

  

基礎命令學習目錄首頁html

 

原文連接:https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858775.html多線程

簡介

mpstat是Multiprocessor Statistics的縮寫,是實時系統監控工具。其報告與CPU的一些統計信息,這些信息存放在/proc/stat文件中。在多CPUs系統裏,其不但能查看全部CPU的平均情況信息,並且可以查看特定CPU的信息。mpstat最大的特色是:能夠查看多核心cpu中每一個計算核心的統計數據;而相似工具vmstat只能查看系統總體cpu狀況。工具

 

語法

mpstat [-P {|ALL}] [internal [count]]
參數 解釋
-P {|ALL} 表示監控哪一個CPU, cpu在[0,cpu個數-1]中取值
internal 相鄰的兩次採樣的間隔時間、
count 採樣的次數,count只能和delay一塊兒使用
當沒有參數時,mpstat則顯示系統啓動之後全部信息的平均值。有interval時,第一行的信息自系統啓動以來的平均信息。從第二行開始,輸出爲前一個interval時間段的平均信息。

 

實例

查看多核CPU核心的當前運行情況信息, 每2秒更新一次post

mpstat  219:45:12 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
19:45:14 all 0.04 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.96
19:45:16 all 0.00 0.00 0.00 0.03 0.00 0.00 0.00 0.00 99.97
19:45:18 all 0.00 0.07 0.07 0.00 0.00 0.00 0.00 0.00 99.87

 

若是要看每一個cpu核心的詳細當前運行情況信息,輸出以下:學習

複製代碼
mpstat  -P ALL 2

19:43:58     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
19:43:59     all    0.00    0.00    0.04    0.00    0.00    0.00    0.00    0.00   99.96
19:43:59       0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
19:43:59       1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
.......
19:43:59      13    0.99    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.01
19:43:59      14    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
19:43:59      15    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
複製代碼

 

字段的含義以下ui

複製代碼
%user      在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
%idle      在internal時間段裏,CPU除去等待磁盤IO操做外的由於任何緣由而空閒的時間閒置時間(%) (idle/total)*100
複製代碼

計算公式以下this

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時間前的值。上表中的全部值可取到兩位小數點。  

 

mpstat是 Multiprocessor Statistics的縮寫,是實時系統監控工具。其報告與CPU的一些統計信息,這些信息存放在/proc/stat文件中。在多CPU系統裏,其不但能查看全部CPU的平均情況信息,並且可以查看特定CPU的信息。
 
mpstat的語法以下
 
mpstat [-P {cpu|ALL}] [internal [count]]1
其中,各參數含義以下:
 

  參數
  含義
 
  -P {cpu l ALL}
  表示監控哪一個CPU, cpu在[0,cpu個數-1]中取值

  internal
  相鄰的兩次採樣的間隔時間

  count
  採樣的次數,count只能和delay一塊兒使用
 
 

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

當mpstat不帶參數時,輸出爲從系統啓動以來的平均值。
2.使用mpstat -P ALL 5 2命令
 
mpstat -P ALL 5 21
表示每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_pre1234567
其中_cur 表示當前值,_pre表示interval時間前的值。上表中的全部值可取到兩位小數點。
Note:
1.vmstat和mpstat 命令的差異:mpstat 能夠顯示每一個處理器的統計,而 vmstat 顯示全部處理器的統計。所以,編寫糟糕的應用程序(不使用多線程體系結構)可能會運行在一個多處理器機器上,而不使用全部處理器。從而致使一個 CPU 過載,而其餘 CPU 卻很空閒。經過 mpstat 能夠輕鬆診斷這些類型的問題。 
2.vmstat中全部關於CPU的總結都適合mpstat。當您看到較低的 %idle 數字時,您知道出現了 CPU 不足的問題。當您看到較高的 %iowait 數字時,您知道在當前負載下 I/O 子系統出現了某些問題。 --------------------- 做者:nana-li 來源:CSDN 原文:https://blog.csdn.net/quiet_girl/article/details/50697412 版權聲明:本文爲博主原創文章,轉載請附上博文連接!
相關文章
相關標籤/搜索