Linux性能優化之mpstat
1 mpstat簡介
mpstat是sysstat工具包中實時監控工具之一。mpstat指令用來顯示cpu的使用狀況,将内容顯示到标準輸出,其資訊存放在/proc/stat檔案中。在多核心cpu系統中,不僅可以檢視cpu平均資訊,還可以檢視指定cpu資訊。
2 mpstat用法
Ubuntu18.04如下:
mpstat -h
用法: mpstat [ 選項 ] [ <時間間隔> [ <次數> ] ]
Options are:
[ -A ] [ -n ] [ -u ] [ -V ] [ -I { SUM | CPU | SCPU | ALL } ]
[ -N { <node_list> | ALL } ] [ -o JSON ] [ -P { <cpu_list> | ON | ALL } ]
選項 說明
-A 等價于“-I ALL –u –P ALL”
-I { SUM | CPU | SCPU | ALL } 顯示中斷資訊;
SUM,顯示每個cpu的中斷總數;
CPU,顯示每秒收到的中斷總數;
SCPU,檢視軟終端的統計資訊;
ALL,顯示所有的中斷統計資訊。
-P { <cpu_list> | ON | ALL } 制定顯示CPU的資訊,從0開始。0…N-1,顯示制指定CPU資訊;ON,每行顯示一個CPU資訊;
ALL,顯示所有的CPU資訊;
-N { <node_list> | ALL
-o JSON
-u 顯示cpu的使用狀态
-V 顯示版本資訊并且退出
<時間間隔> 每個報表之間以秒為機關的時間量。值為0(或根本沒有參數)表示自系統啟動(啟動)以來将報告處理器統計資訊。
<次數> 計數值決定間隔秒生成的報表數。如果未使用count參數指定Interval參數,則mpstat指令将連續生成報告。
3 mpstat視圖含義
-u CPU使用狀态
關鍵字 含義
CPU 處理器編号。關鍵字all表示統計資訊計算為所有處理器之間的平均值。
%usr 顯示在使用者級(應用程式)執行時發生的CPU使用率百分比。
%nice 顯示以優先級較高的使用者級别執行時發生的CPU使用率百分比。
%sys 顯示在系統級(核心)執行時發生的CPU使用率百分比。請注意,這不包括維護硬體和軟體的時間中斷。
%iowait 顯示系統具有未完成磁盤I / O請求的CPU或CPU空閑的時間百分比。
%irq 顯示CPU或CPU用于服務硬體中斷的時間百分比。
%soft 顯示CPU或CPU用于服務軟體中斷的時間百分比。
%steal 顯示虛拟CPU或CPU在管理程式為另一個虛拟處理器提供服務時非自願等待的時間百分比。
%guest 顯示CPU或CPU運作虛拟處理器所花費的時間百分比。
%gnice 顯示CPU或CPU運作niced客戶機所花費的時間百分比。
%idle 顯示CPU或CPU空閑且系統沒有未完成的磁盤I / O請求的時間百分比。
4 mpstat使用示例
4.1 不加參數
不加參數:顯示所有cpu的整體狀态。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2YfNWawNyZuBnL5YTMwMTMyYTM3ETOwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
4.2 顯示CPU使用狀态
-P ALL|0:顯示所有cpu的使用狀态或者指定CPU的使用狀态
4.3 顯示CPU中斷統計資訊
4.3.1 查找中斷總數
-I SUM –P ALL|0:檢視所有CPU或指定CPU的中斷總數
4.3.2 查找每秒中斷數量
-I CPU –P ALL|0:檢視所有CPU或指定CPU每秒接收每個中斷的次數;如果中斷太多會導緻顯示器顯示錯亂。
4.3.3 查找指定中斷号每秒的中斷數量的方法
查找指定中斷的次數——查找指定中斷号18和中斷号19的每秒中斷次數。
1. 查找指定中斷号所在的列數
如上兩圖所示,中斷号18和19所在的列數分别是4和5.
2. 根據列數查找指定中斷号的中斷次數
-I SCPU:檢視軟中斷統
4.4 加入時間間隔及顯示次數
mpstat –P ALL 2 5 ——每隔2s,總共顯示5次,所有cpu的狀态資訊,并統計平均。