linux性能检测之mpstat详解
一、mpstat介绍
1.1 简介
mpstat是MultiProcessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。
mpstat也是sysstat安装包里面的一个命令。
1.2 mpstat的格式
mpstat [ -A ] [ -I { SUM | CPU | ALL } ] [ -u ] [ -P { cpu [,...] | ON | ALL } ] [ -V ] [ interval [ count ] ]
描述:
mpstat命令写入每个可用处理器的标准输出活动,处理器0是第一个。还报告了所有处理器之间的平均活动。mpstat命令可以在SMP和UP机器上使用,但在后者中,将只打印全局平均活动。如果没有选择任何活动,则默认报告是CPU利用报告。
interval参数指定每个报告之间的时间(以秒为单位)。值为0(或根本没有参数)表示要为报告处理器统计信息,系统启动(启动)后的时间。如果此参数未设置为零,则可以结合interval参数指定count参数。 count的值决定的数量报告生成间隔秒间隔。如果在不指定count参数的情况下指定interval参数,mpstat命令会连续生成报告
1.3 选项
-A : 此选项等效于# mpstat -I ALL -u -P ALL
-I {SUM | CPU | ALL} : 报告中断统计信息。 使用SUM关键字,mpstat命令报告每个处理器的中断总数。使用CPU关键字,显示CPU或CPU每秒接收的每个中断的数量。ALL关键字等效于指定上面的所有关键字,因此显示所有中断统计信息。
-P {cpu [,...] | ON | ALL} : 指示要报告统计信息的处理器编号。cpu是处理器号。注意,处理器0是第一个处理器。 ON关键字表示将为每个在线处理器报告统计信息,而ALL关键字指示要为所有处理器报告统计信息。
-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运行虚拟处理器所花费的时间百分比。
%idle: 显示CPU或CPU空闲且系统没有未完成的磁盘I / O请求的时间百分比。
-V : 打印版本号,然后退出。
博文来自:www.51niux.com
二、示例
2.1 粗略显示cpu使用情况
#mpstat #显示cpu使用情况的粗略信息
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月21日 _x86_64_ (8 CPU)
16时31分34秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
16时31分34秒 all 8.74 0.00 0.50 0.31 0.00 0.05 0.01 0.00 90.39
2.2 显示每个CPU是具体使用情况
#mpstat -P ALL #这个每个CPU的使用情况都会打印出来,这里是0-7,是CPU的编号。
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月21日 _x86_64_ (8 CPU)
16时34分03秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
16时34分03秒 all 8.74 0.00 0.50 0.31 0.00 0.05 0.01 0.00 90.39
16时34分03秒 0 8.94 0.00 0.50 0.33 0.00 0.06 0.01 0.00 90.18
16时34分03秒 1 8.81 0.00 0.54 0.31 0.00 0.06 0.01 0.00 90.28
16时34分03秒 2 8.74 0.00 0.50 0.31 0.00 0.05 0.01 0.00 90.39
16时34分03秒 3 8.70 0.00 0.49 0.31 0.00 0.05 0.01 0.00 90.44
16时34分03秒 4 8.70 0.00 0.49 0.31 0.00 0.05 0.01 0.00 90.44
16时34分03秒 5 8.67 0.00 0.49 0.31 0.00 0.05 0.01 0.00 90.47
16时34分03秒 6 8.69 0.00 0.49 0.31 0.00 0.05 0.01 0.00 90.45
16时34分03秒 7 8.67 0.00 0.49 0.31 0.00 0.05 0.01 0.00 90.47
2.3 显示cpu的中断统计信息
#mpstat -I SUM #这是只是显示总的中断统计信息
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月21日 _x86_64_ (8 CPU)
16时35分34秒 CPU intr/s
16时35分34秒 all 2362.96
#mpstat -I CPU
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月21日 _x86_64_ (8 CPU)
#mpstat -I ALL #就是将上面两个合到一起,又显示总的中断信息,又显示各个cpu的详细中断信息。
博文来自:www.51niux.com
2.4 显示某些CPU的统计信息
#mpstat -P 2 #显示编号为2的CPU的统计信息
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月21日 _x86_64_ (8 CPU)
16时43分14秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
16时43分14秒 2 8.74 0.00 0.50 0.31 0.00 0.05 0.01 0.00 90.39
#mpstat -P 2,3,4 #显示编号为2,3,4的CPU的统计信息
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月21日 _x86_64_ (8 CPU)
16时43分18秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
16时43分18秒 2 8.74 0.00 0.50 0.31 0.00 0.05 0.01 0.00 90.39
16时43分18秒 3 8.70 0.00 0.49 0.31 0.00 0.05 0.01 0.00 90.44
16时43分18秒 4 8.70 0.00 0.49 0.31 0.00 0.05 0.01 0.00 90.44
2.5 按照一定频率刷新CPU的信息
#mpstat -P ALL 2 3 #这里是每2秒刷新一次CPU的统计信息,一共刷新三次,每段信息之间都有空格隔开。
#mpstat -P 2,3,4 2 3 #这里是每2秒刷新一次CPU编号为2,3,4的信息。一共刷新三次。每段信息之间就没有空格隔开了。
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月21日 _x86_64_ (8 CPU)
16时46分48秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
16时46分50秒 2 3.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 97.00
16时46分50秒 3 10.05 0.00 0.00 0.00 0.00 0.00 0.00 0.00 89.95
16时46分50秒 4 12.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 87.50
16时46分52秒 2 9.55 0.00 0.00 0.00 0.00 0.00 0.00 0.00 90.45
16时46分52秒 3 5.97 0.00 0.50 0.00 0.00 0.00 0.00 0.00 93.53
16时46分52秒 4 8.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 91.50
16时46分54秒 2 5.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 94.50
16时46分54秒 3 5.53 0.00 0.00 0.00 0.00 0.00 0.00 0.00 94.47
16时46分54秒 4 8.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 92.00
平均时间: 2 6.01 0.00 0.00 0.00 0.00 0.00 0.00 0.00 93.99
平均时间: 3 7.18 0.00 0.17 0.00 0.00 0.00 0.00 0.00 92.65
平均时间: 4 9.50 0.00 0.17 0.00 0.00 0.00 0.00 0.00 90.33
2.6 按照一定频率刷新CPU的汇总信息
#mpstat 2 3 #mpstat后面不加什么参数的话,直接就加两个数字表示每两秒刷新一次,刷新三次。如果不加参数3只加一个2的话,只会会每2秒刷新一次。
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2017年03月21日 _x86_64_ (8 CPU)
17时16分29秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
17时16分31秒 all 8.71 0.00 0.38 0.00 0.00 0.00 0.00 0.00 90.91
17时16分33秒 all 7.38 0.00 0.19 0.00 0.00 0.06 0.00 0.00 92.37
17时16分35秒 all 6.39 0.00 0.25 0.00 0.00 0.00 0.00 0.00 93.36
平均时间: all 7.49 0.00 0.27 0.00 0.00 0.02 0.00 0.00 92.21