mpstat
mpstat是Multiprocessor Statistics的缩写,是实时监控工具,报告与cpu的一些统计信息这些信息都存在/proc/stat文件中,在多CPU系统里,其不但能查看所有的CPU的平均状况的信息,而且能够有查看特定的cpu信息,mpstat最大的特点是:可以查看多核心的cpu中每个计算核心的统计数据;而且类似工具vmstat只能查看系统的整体cpu情况。(mpstat是常用的多核CPU性能分析工具,用来实时查看CPU的性能指标以及所有CPU的平均指标)
#要使用sysstat需要安装该包
yum install sysstat -y
cpu状态
“-u”选项可以显示的cpu状态有
选项 |
说明 |
CPU |
处理器号码。关键字ALL表示统计数据是以所有处理器之间的平均值计算的。 |
%usr |
显示在用户级别(应用程序)执行时出现的CPU利用率百分比。 |
%nice |
以良好的优先级在用户级别执行时显示CPU利用率的百分比。 |
%sys |
显示在系统级(内核)执行时CPU利用率的百分比。请注意,这不包括用于服务硬件和软件中断的时间。 |
%iowait |
显示CPU或CPU空闲的时间百分比,在此期间,系统有未执行的磁盘I/O请求。 |
%irq |
显示cpu或cpu用于服务硬件中断的时间百分比。 |
%soft |
显示CPU或CPU用于服务软件中断的时间百分比。 |
%steal |
显示虚拟机管理程序为另一个虚拟处理器服务时,虚拟CPU或CPU在非自愿等待中花费的时间百分比。 |
%guest |
显示CPU或cpu运行虚拟处理器所花费的时间百分比。 |
%idle |
显示CPU或CPU空闲的时间百分比,并且系统没有未执行的磁盘I/O请求。 |
mpstat -P ALL 1
先查看你的CPU的个数
[root@localhost ~]# grep "model name" /proc/cpuinfo | wc -l
32
查看每个CPU的负载
$ mpstat -P ALL 1
Linux 3.13.0-49-generic (titanclusters-xxxxx) 07/14/2015 _x86_64_ (32 CPU)
07:38:49 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
07:38:50 PM all 98.47 0.00 0.75 0.00 0.00 0.00 0.00 0.00 0.00 0.78
07:38:50 PM 0 96.04 0.00 2.97 0.00 0.00 0.00 0.00 0.00 0.00 0.99
07:38:50 PM 1 97.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 2.00
07:38:50 PM 2 98.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 1.00
07:38:50 PM 3 96.97 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 3.03
[...]
这个命令显示每个CPU的时间使用百分比,你可以用它来检查CPU是否存在负载不均衡。单个过于忙碌的CPU可能意味着整个应用只有单个线程在工作。