• Linux mpstat命令详解


    一、mpstat命令介绍

      mpstat是Multiprocessor Statistics的缩写,是CPU实时监控工具。它会显示CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPU系统里,mpstat命令不仅能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。mpstat最大的特点是:可以查看多核心cpu中每个计算核心的统计数据;而类似的工具vmstat只能查看系统整体cpu情况

    二、mpstat语法

      mpstat命令的语法格式为:

    mpstat [-P {|ALL}] [internal [count]]
    参数 解释
    -P {|ALL} 表示监控哪个CPU,例如mpstat -P 0    mpstat -P 7   mpstat -P ALL
    internal 相邻的两次采样的间隔时间
    count 采样的次数,count只能和delay一起使用
    当没有参数时,mpstat只显示系统所有信息的平均值,有internal参数时,第一行的信息是自系统启动以来的平均信息,从第二行开始,输出为前一个internal时间段的平均信息

    三、实例

    【例1】查看CPU整体的运行状况,每秒更新1次

    ➜  test mpstat 1   #没有-P {|ALL}参数时,默认显示CPU整体运行状况
    Linux 4.14.81.bm.15-amd64 (n227-080-096)     10/04/21     _x86_64_    (8 CPU)
    
    11:05:37     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
    11:05:38     all    0.50    0.00    1.51    0.00    0.00    0.00    0.13    0.00    0.00   97.86
    11:05:39     all    0.75    0.00    1.76    0.00    0.00    0.00    0.13    0.00    0.00   97.36
    11:05:40     all    0.25    0.00    1.76    0.00    0.00    0.00    0.13    0.00    0.00   97.86
    11:05:41     all    0.63    0.00    1.51    0.00    0.00    0.00    0.25    0.00    0.00   97.62
    11:05:42     all    1.00    0.00    2.63    0.00    0.00    0.00    0.13    0.00    0.00   96.24

    【例2】查看每个CPU核心的运行状况,每秒更新1次

    ➜  test mpstat -P ALL 1     #有-P {|ALL}参数时,会显示全部CPU核心的运行状况
    Linux 4.14.81.bm.15-amd64 (n227-080-096)     10/04/21     _x86_64_    (8 CPU)
    
    11:07:11     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
    11:07:12     all    0.76    0.00    2.15    0.00    0.00    0.00    0.13    0.00    0.00   96.97
    11:07:12       0    0.00    0.00    4.00    0.00    0.00    0.00    1.00    0.00    0.00   95.00
    11:07:12       1    0.00    0.00    1.01    0.00    0.00    0.00    0.00    0.00    0.00   98.99
    11:07:12       2    0.00    0.00    3.03    0.00    0.00    0.00    0.00    0.00    0.00   96.97
    11:07:12       3    1.01    0.00    2.02    0.00    0.00    0.00    0.00    0.00    0.00   96.97
    11:07:12       4    3.03    0.00    2.02    0.00    0.00    0.00    0.00    0.00    0.00   94.95
    11:07:12       5    0.00    0.00    3.06    0.00    0.00    0.00    0.00    0.00    0.00   96.94
    11:07:12       6    1.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00    0.00   98.00
    11:07:12       7    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
    
    11:07:12     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
    11:07:13     all    0.38    0.00    1.13    0.00    0.00    0.00    0.38    0.00    0.00   98.11
    11:07:13       0    0.99    0.00    1.98    0.00    0.00    0.00    0.99    0.00    0.00   96.04
    11:07:13       1    0.00    0.00    2.04    0.00    0.00    0.00    0.00    0.00    0.00   97.96
    11:07:13       2    0.00    0.00    2.02    0.00    0.00    0.00    0.00    0.00    0.00   97.98
    11:07:13       3    0.00    0.00    0.00    0.00    0.00    0.00    1.01    0.00    0.00   98.99
    11:07:13       4    1.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00    0.00   98.00
    11:07:13       5    0.00    0.00    1.00    0.00    0.00    0.00    1.00    0.00    0.00   98.00
    11:07:13       6    0.00    0.00    1.00    0.00    0.00    0.00    1.00    0.00    0.00   98.00
    11:07:13       7    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

    【例3】每秒输出一次CPU整体统计信息,一共输出5次,然后结束

    ➜  test mpstat 1 5
    Linux 4.14.81.bm.15-amd64 (n227-080-096)     10/04/21     _x86_64_    (8 CPU)
    
    12:00:52     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
    12:00:53     all    0.63    0.00    2.89    0.00    0.00    0.00    0.13    0.00    0.00   96.36
    12:00:54     all    2.15    0.00    3.92    0.13    0.00    0.13    0.25    0.00    0.00   93.42
    12:00:55     all    0.50    0.00    1.13    0.00    0.00    0.00    0.38    0.00    0.00   97.99
    12:00:56     all    0.38    0.00    1.63    0.00    0.00    0.13    0.13    0.00    0.00   97.74
    12:00:57     all    0.38    0.00    1.64    0.00    0.00    0.00    0.13    0.00    0.00   97.86
    Average:     all    0.81    0.00    2.24    0.03    0.00    0.05    0.20    0.00    0.00   96.68

    上述命令,每秒输出一次信息,一共输出5次,然后结束。最后会打印一下这5次输出的平均值

    四、mpstat各字段的含义

    字段 含义
    %usr 在internal时间段里,用户态占用CPU的时间(%),不包含nice值为负的进程
    %nice 在internal时间段里,nice值为负的进程占用CPU的时间(%) 
    %sys 在internal时间段里,内核态占用CPU的时间(%)
    %iowait 在internal时间段里,等待IO占用CPU的时间(%)
    %irq 在internal时间段里,硬中断占用CPU的时间(%)
    %soft 在internal时间段里,软中断占用CPU的时间(%)
    %guest CPU处理虚拟进程花费的时间开销
    %idle 在internal时间段里,空闲CPU的时间(%)

    五、总结

      1. mpstat和vmstat命令的差别:mpstat可以显示每个CPU的统计信息,而vmstat只显示所有CPU的统计信息。因此,编写糟糕的应用程序(不使用多线程体系结构)可能会运行在一个多处理器机器上,而不使用所有处理器。从而导致一个 CPU 过载,而其他 CPU 却很空闲。通过 mpstat 可以轻松诊断这些类型的问题。

      2.vmstat中所有关于CPU的总结都适合mpstat。当您看到较低的 %idle 数字时,就知道出现了 CPU 不足的问题。当您看到较高的 %iowait 数字时,就知道在当前负载下等待IO严重。

  • 相关阅读:
    test
    在linux下安装tesseract-ocr
    xpath获取同级节点
    RobotFrameWork系统关键字之断言
    redis
    mybatis
    mysql事务隔离级别
    努力努力再努力
    不同分辨率下,页面如何自适应?
    市场上有多少种分辨率?
  • 原文地址:https://www.cnblogs.com/baichunyu/p/15366105.html
Copyright © 2020-2023  润新知