zoukankan      html  css  js  c++  java
  • mpstat命令详解

      

    基础命令学习目录首页

    原文链接:https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858775.html

    简介

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

    语法

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

    实例

    查看多核CPU核心的当前运行状况信息, 每2秒更新一次

    mpstat  219:45:12 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
    19:45:14 all 0.04 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.96
    19:45:16 all 0.00 0.00 0.00 0.03 0.00 0.00 0.00 0.00 99.97
    19:45:18 all 0.00 0.07 0.07 0.00 0.00 0.00 0.00 0.00 99.87

    如果要看每个cpu核心的详细当前运行状况信息,输出如下:

    复制代码
    mpstat  -P ALL 2
    
    19:43:58     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
    19:43:59     all    0.00    0.00    0.04    0.00    0.00    0.00    0.00    0.00   99.96
    19:43:59       0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
    19:43:59       1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
    .......
    19:43:59      13    0.99    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.01
    19:43:59      14    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
    19:43:59      15    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
    复制代码

    字段的含义如下

    复制代码
    %user      在internal时间段里,用户态的CPU时间(%),不包含nice值为负进程  (usr/total)*100
    %nice      在internal时间段里,nice值为负进程的CPU时间(%)   (nice/total)*100
    %sys       在internal时间段里,内核时间(%)       (system/total)*100
    %iowait    在internal时间段里,硬盘IO等待时间(%) (iowait/total)*100
    %irq       在internal时间段里,硬中断时间(%)     (irq/total)*100
    %soft      在internal时间段里,软中断时间(%)     (softirq/total)*100
    %idle      在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%) (idle/total)*100
    复制代码

    计算公式如下

    total_cur=user+system+nice+idle+iowait+irq+softirq
    total_pre=pre_user+ pre_system+ pre_nice+ pre_idle+ pre_iowait+ pre_irq+ pre_softirq
    user=user_cur – user_pre
    total=total_cur-total_pre
    其中_cur 表示当前值,_pre表示interval时间前的值。上表中的所有值可取到两位小数点。  
    mpstat是 Multiprocessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPU系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。
     
    mpstat的语法如下
     
    mpstat [-P {cpu|ALL}] [internal [count]]1
    其中,各参数含义如下:
     

      参数
      含义
     
      -P {cpu l ALL}
      表示监控哪个CPU, cpu在[0,cpu个数-1]中取值

      internal
      相邻的两次采样的间隔时间

      count
      采样的次数,count只能和delay一起使用
     
     

    使用mpstat命令
    1.直接使用mpstat命令:
     
    mpstat1
     

    当mpstat不带参数时,输出为从系统启动以来的平均值。
    2.使用mpstat -P ALL 5 2命令
     
    mpstat -P ALL 5 21
    表示每5秒产生一个报告,总共产生2个。
     

    上图表示每5秒产生了2个关于处理器的统计数据报告,一共产生2个interval 的信息,然后再给出这2个interval的平均信息。默认时,输出是按照CPU 号排序。第一个行给出了从系统引导以来的所有活跃数据。接下来每行对应一个处理器的活跃状态。
     
    输出参数含义
    当没有参数时,mpstat则显示系统启动以后所有信息的平均值。有interval时,第一行的信息自系统启动以来的平均信息。从第二行开始,输出为前一个interval时间段的平均信息。
    输出各参数含义:
     

      参数
      释义
      从/proc/stat获得数据
     
      CPU
      处理器ID
     

      %usr
      在internal时间段里,用户态的CPU时间(%),不包含 nice值为负进程
      usr/total*100

      %nice
      在internal时间段里,nice值为负进程的CPU时间(%)
      nice/total*100

      %sys
      在internal时间段里,核心时间(%)
      system/total*100

      %iowait
      在internal时间段里,硬盘IO等待时间(%)
      iowait/total*100

      %irq
      在internal时间段里,硬中断时间(%)
      irq/total*100

      %soft
      在internal时间段里,软中断时间(%)
      softirq/total*100

      %steal
      显示虚拟机管理器在服务另一个虚拟处理器时虚拟CPU处在非自愿等待下花费时间的百分比
      steal/total*100

      %guest
      显示运行虚拟处理器时CPU花费时间的百分比
      guest/total*100

      %gnice
     
      gnice/total*100

      %idle
      在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%)
      idle/total*100
     
     
    CPU总的工作时间:
     
    total_cur = user + system + nice + idle + iowait + irq + softirq
    total_pre = pre_user + pre_system + pre_nice + pre_idle + pre_iowait + pre_irq + pre_softirq
    user = user_cur – user_pre
    total = total_cur - total_pre1234567
    其中_cur 表示当前值,_pre表示interval时间前的值。上表中的所有值可取到两位小数点。
    Note:
    1.vmstat和mpstat 命令的差别:mpstat 可以显示每个处理器的统计,而 vmstat 显示所有处理器的统计。因此,编写糟糕的应用程序(不使用多线程体系结构)可能会运行在一个多处理器机器上,而不使用所有处理器。从而导致一个 CPU 过载,而其他 CPU 却很空闲。通过 mpstat 可以轻松诊断这些类型的问题。 
    2.vmstat中所有关于CPU的总结都适合mpstat。当您看到较低的 %idle 数字时,您知道出现了 CPU 不足的问题。当您看到较高的 %iowait 数字时,您知道在当前负载下 I/O 子系统出现了某些问题。
    ---------------------
    作者:nana-li
    来源:CSDN
    原文:https://blog.csdn.net/quiet_girl/article/details/50697412
    版权声明:本文为博主原创文章,转载请附上博文链接!
     
     
  • 相关阅读:
    SDUT 2143 图结构练习——最短路径 SPFA模板,方便以后用。。 Anti
    SDUT ACM 1002 Biorhythms 中国剩余定理 Anti
    nyist OJ 119 士兵杀敌(三) RMQ问题 Anti
    SDUT ACM 2157 Greatest Number Anti
    SDUT ACM 2622 最短路径 二维SPFA启蒙题。。 Anti
    二叉索引树 区间信息的维护与查询 Anti
    SDUT ACM 2600 子节点计数 Anti
    UVA 1428 Ping pong 二叉索引树标准用法 Anti
    2010圣诞Google首页效果
    Object
  • 原文地址:https://www.cnblogs.com/machangwei-8/p/10388647.html
Copyright © 2011-2022 走看看