一,mpstat的用途
mpstat是 Multiprocessor Statistics的縮寫,是實時cpu監控工具。
在多CPU系統里,其不但能查看所有CPU的平均狀況信息,而且能夠查看特定CPU的信息
它的數據來自於 /proc/stat文件
說明:劉宏締的架構森林是一個專注架構的博客,地址:https://www.cnblogs.com/architectforest
對應的源碼可以訪問這里獲取: https://github.com/liuhongdi/
說明:作者:劉宏締 郵箱: 371125307@qq.com
二,mpstat所屬的rpm包與安裝
1,查看所屬的包
[root@blog ~]# whereis mpstat mpstat: /usr/bin/mpstat /usr/share/man/man1/mpstat.1.gz [root@blog ~]# rpm -qf /usr/bin/mpstat sysstat-11.7.3-2.el8.x86_64
2,找不到mpstat命令時,可以用yum安裝
[root@blog ~]# yum install sysstat
三,查看mpstat的版本和幫助
1,查看版本
[root@blog ~]# mpstat -V sysstat version 11.7.3 (C) Sebastien Godard (sysstat <at> orange.fr)
2,查看幫助
[root@blog ~]# mpstat --help
四,常用的用法舉例
1,查看所有cpu的運行情況
# -P 指定cpu的id,ALL表示所有cpu
[root@blog ~]# mpstat -P ALL Linux 4.18.0-80.11.2.el8_0.x86_64 (blog) 04/08/2020 _x86_64_ (4 CPU)
03:43:05 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 03:43:05 PM all 0.03 0.00 0.02 0.00 0.00 0.00 0.00 0.00 0.00 99.95 03:43:05 PM 0 0.05 0.00 0.03 0.00 0.00 0.00 0.00 0.00 0.00 99.92 03:43:05 PM 1 0.02 0.00 0.01 0.00 0.00 0.00 0.00 0.00 0.00 99.97 03:43:05 PM 2 0.04 0.00 0.02 0.00 0.00 0.00 0.00 0.00 0.00 99.94 03:43:05 PM 3 0.02 0.00 0.02 0.00 0.00 0.00 0.00 0.00 0.00 99.96
2,查看指定cpu的運行情況
## -P 指定cpu的id,此處是1
[root@blog ~]# mpstat -P 1 Linux 4.18.0-80.11.2.el8_0.x86_64 (blog) 04/08/2020 _x86_64_ (4 CPU) 03:55:12 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 03:55:12 PM 1 0.02 0.00 0.01 0.00 0.00 0.00 0.00 0.00 0.00 99.97
3,指定輸出的時間間隔和次數
#命令格式:mpstat [-P {|ALL}] [internal [count]]
#internal 時間間隔,此處值是3
#count 統計次數,此處值是5
# 顯示所有cpu的統計信息,每隔3秒統計一次,共統計5次后退出
[root@blog ~]# mpstat -P ALL 3 5
說明:
當沒有參數時,mpstat則顯示系統啟動以后所有信息的平均值。
有interval時,第一行的信息自系統啟動以來的平均信息。
從第二行開始,輸出為前一個interval時間段的平均信息。
五,輸出信息各字段的含義:
user(通常縮寫為 us),代表用戶態 CPU 時間。
注意,它不包括下面的 nice 時間,但包括了 guest 時間。
nice(通常縮寫為 ni),代表低優先級用戶態 CPU 時間,也就是進程的 nice 值被調整為 1-19 之間時的 CPU 時間。
注意,nice 可取值范圍是 -20 到 19,數值越大,優先級反而越低。
system(通常縮寫為 sys),代表內核態 CPU 時間。
idle(通常縮寫為 id),代表空閑時間。
注意,它不包括等待 I/O 的時間(iowait)。
iowait(通常縮寫為 wa),代表等待 I/O 的 CPU 時間。
irq(通常縮寫為 hi),代表處理硬中斷的 CPU 時間。
softirq(通常縮寫為 si),代表處理軟中斷的 CPU 時間。
steal(通常縮寫為 st),代表當系統運行在虛擬機中的時候,被其他虛擬機占用的 CPU 時間。
guest(通常縮寫為 guest),代表通過虛擬化運行其他操作系統的時間,也就是運行虛擬機的 CPU 時間。
guest_nice(通常縮寫為 gnice),代表以低優先級運行虛擬機的時間。
六,查看centos版本
[root@blog ~]# cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core)
