Linux高效能伺服器診斷工具(01) mpstat命令 - 報告處理器相關統計資訊

劉近光發表於2017-12-14

簡介

一般今天的計算機都支援多個處理器。即使膝上型電腦通常也是1個物理處理器,內建2個核心;筆者使用的HP伺服器,已經可以支援2個物理處理器,每個處理器上可以達到14個核心(Xeon E5-2660v4 (2.0GHz/14-core))。在伺服器端,更多的處理器或核心意味著更多的計算能力。但另一方面,也更耗電。你可能會發現一個情況,當你的CPU利用率很高,但你覺得你沒有執行什麼應用。在Linux系統上,您可以使用mpstat來監視這個活動。

mpstat是什麼

mpstat用於監視系統上的CPU利用率。如果你的系統有多個處理器,那將會更有用。第一個處理器將被標記為CPU 0,第二個將被標記為CPU 1等等。從手冊頁中,mpstat被描述為:
mpstat命令每個可用處理器活動寫入標準輸出,處理器0是第一個。所有處理器之間的全域性平均活動也被報告。 mpstat命令可以在SMP和UP機器上使用,但是在後者中只能列印全域性的平均活動。如果沒有選擇任何活動,則預設報告是CPU利用率報告。

mpstat的安裝

在Ubuntu 16.04版本上,可以通過下列的命令來安裝mpstat:

sudo apt-get install sysstat

如何執行mpstat

只需在控制檯上輸入mpstat來執行mpstat。在筆者的筆記本上輸出為:

hadoop@bob-thinkpad:~$ mpstat
Linux 4.10.0-42-generic (bob-thinkpad)  2017年12月14日  _x86_64_        (4 CPU)

18時47分48秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
18時47分48秒  all    1.10    0.01    0.57    0.44    0.00    0.01    0.00    0.00    0.00   97.87
以下是如何閱讀上述資訊:
18時47分48秒:表示mpstat執行的時間
all:表示所有的CPU
%usr:顯示在使用者級別執行時發生的CPU利用率百分比(應用程式)
%nice:顯示在使用者級別執行時出現的CPU利用率百分比,具有nice優先順序
%sys:顯示在系統級別執行時發生的CPU利用率百分比(核心)
%iowait:顯示CPU或CPU處於空閒狀態的時間百分比,在此期間系統有一個顯著的磁碟I / O請求
%irq:顯示CPU或CPU花費在服務硬體中斷上的時間百分比
%soft:顯示CPU或CPU花費在服務軟體中斷上的時間百分比
%steal:顯示當虛擬機器管理程式正在維護另一個虛擬處理器時,由虛擬CPU或CPU自願等待的時間百分比
%guest:顯示CPU或CPU執行虛擬處理器的時間百分比
%idle:顯示CPU或CPU閒置的時間百分比,系統沒有顯著的磁碟I / O請求

顯示每個處理器的CPU利用率

從上面的顯示資訊中,你可以看到我使用的系統有4個CPU。你可以使用-P引數,跟CPU編號來顯示指定CPU的利用率:

Linux 4.10.0-42-generic (bob-thinkpad)  2017年12月16日  _x86_64_        (4 CPU)

19時57分26秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
19時57分26秒    0    0.70    0.00    0.35    0.52    0.00    0.00    0.00    0.00    0.00   98.43

顯示所有CPU利用率

使用-P ALL引數可以顯示所有CPU的利用率。

hadoop@bob-thinkpad:~$ mpstat -P ALL
Linux 4.10.0-42-generic (bob-thinkpad)  2017年12月16日  _x86_64_        (4 CPU)

20時02分02秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
20時02分02秒  all    0.54    0.00    0.32    0.58    0.00    0.01    0.00    0.00    0.00   98.54
20時02分02秒    0    0.70    0.00    0.35    0.51    0.00    0.00    0.00    0.00    0.00   98.44
20時02分02秒    1    0.45    0.01    0.21    0.87    0.00    0.04    0.00    0.00    0.00   98.42
20時02分02秒    2    0.64    0.00    0.40    0.52    0.00    0.00    0.00    0.00    0.00   98.44
20時02分02秒    3    0.38    0.00    0.32    0.44    0.00    0.00    0.00    0.00    0.00   98.86

使用間隔列印CPU利用率

您可能想要檢視CPU利用率的變化。要做到這一點,你可以使用間隔選項。下面的例子是設定間隔週期為3秒,採集2次的執行結果:

hadoop@bob-thinkpad:~$ mpstat -P ALL 3 2
Linux 4.10.0-42-generic (bob-thinkpad)  2017年12月16日  _x86_64_        (4 CPU)

20時13分54秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
20時13分57秒  all    0.75    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.25
20時13分57秒    0    0.34    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.66
20時13分57秒    1    0.67    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.33
20時13分57秒    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
20時13分57秒    3    1.98    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   98.02

20時13分57秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
20時14分00秒  all    0.83    0.00    0.08    0.00    0.00    0.00    0.00    0.00    0.00   99.08
20時14分00秒    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
20時14分00秒    1    0.33    0.00    0.33    0.33    0.00    0.00    0.00    0.00    0.00   99.00
20時14分00秒    2    0.34    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.66
20時14分00秒    3    2.30    0.00    0.33    0.00    0.00    0.00    0.00    0.00    0.00   97.38

Average:     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
Average:     all    0.79    0.00    0.04    0.00    0.00    0.00    0.00    0.00    0.00   99.17
Average:       0    0.17    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.83
Average:       1    0.50    0.00    0.17    0.17    0.00    0.00    0.00    0.00    0.00   99.17
Average:       2    0.17    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.83
Average:       3    2.14    0.00    0.16    0.00    0.00    0.00    0.00    0.00    0.00   97.70

相關文章