mpstat介绍
mpstat是Multiprocessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。
 
mpstat的语法如下:
mpstat [-P {|ALL}] [internal [count]]
参数的含义如下:
参数 解释

-P {|ALL}
表示监控哪个CPU, cpu在[0,cpu个数-1]中取值
delay
相邻的两次采样的间隔时间
count
采样的次数,count只能和delay一起使用
无参数
当没有参数时,mpstat则显示系统启动以后所有信息的平均值。有interval时,第一行的信息自系统启动以来的平均信息。从第二行开始,输出为前一个interval时间段的平均信息。与CPU有关的输出的含义如下:
参数 解释 从/proc/stat获得数据
CPU all
表示统计所有 CPU信息的平均值。
user
在监控的时间间隔内,用户级进程(运用程序)占用的CPU时间百分比。
nice
在监控的时间间隔内,nice值为负的用户级进程所占用的CPU时间百分比。
system
在监控的时间间隔内,系统及进程(内核)占用的CPU使用率。该时间包括了系统处理软、硬中断所花的时间。
iowait
在监控的时间间隔内,等待硬盘I/O的时间,CPU的闲置时间百分比。
steal
管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比
idle
在监控的时间间隔内,CPU闲置时间所占用的时间百分比,不包括等待磁盘IO请求的时间
irq
在监控的时间间隔内,CPU服务硬中断的所占的时间百分比
soft
在监控的时间间隔内,CPU服务软中断的所占的时间百分比
intr/s
表示在某一时间间隔中观测到的设备每秒中断数
其中最重要的字段是%idle,%iowait。如果%idle 说明CPU的负载不高。如果%iowait,说明存在I/O竞争。 也可以使用输出重定向保存mpstat对CPU的监控数据,用作CPU历史使用率分析。

 
用法实例:
 
[root@study ~]# mpstat
Linux 2.6.18-194.el5 (study)    04/20/12
 
00:37:06     CPU   %user   %nice    %sys %iowait    %irq   %soft %steal   %idle    intr/s
00:37:06     all    0.06    0.00    0.38    0.48    0.03    1.70    0.00   97.35   1008.32
[root@study ~]# mpstat 1 1
Linux 2.6.18-194.el5 (study)   04/20/12
 
00:37:19     CPU   %user   %nice    %sys %iowait    %irq   %soft %steal   %idle    intr/s
00:37:20     all    0.00    0.00    0.00    0.00    0.00    0.00    0.00 100.00    995.00
Average:     all    0.00    0.00    0.00    0.00    0.00    0.00    0.00 100.00    995.00
 
[root@study ~]# mpstat 2 2
Linux 2.6.18-194.el5 (study)    04/20/12
 
00:37:26     CPU   %user   %nice    %sys %iowait    %irq   %soft %steal   %idle    intr/s
00:37:28     all    0.00    0.00    0.57    0.00    0.00    6.29    0.00   93.14   1002.86
00:37:30     all    0.00    0.00    0.00    0.00    0.00    0.00    0.00 100.00   1002.53
Average:     all    0.00    0.00    0.27    0.00    0.00    2.95    0.00   96.78   1002.68
 
[root@study ~]# mpstat -P ALL  
Linux 2.6.18-194.el5 (study)    04/20/12
 
00:40:43     CPU   %user   %nice    %sys %iowait    %irq   %soft %steal   %idle    intr/s
00:40:43     all    0.06    0.00    0.37    0.48    0.03    1.69    0.00   97.36   1008.30
00:40:43       0    0.06    0.00    0.37    0.48    0.03    1.69    0.00   97.36   1008.30