前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一天一个 Linux 命令(41):mpstat 命令

一天一个 Linux 命令(41):mpstat 命令

作者头像
joshua317
发布2021-11-19 16:16:49
4290
发布2021-11-19 16:16:49
举报
文章被收录于专栏:技术博文

本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/196

一、简介

Linux下的mpstat(英文全称:Multiprocessor Statistics)命令是是实时系统监控工具,可以显示随着时间变化的CPU数据,方便找出CPU使用率与时间的关系。这个命令包含在工具集sysstat中,使用之前需要安装sysstat。

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

如果系统没有安装,可以通过sudo yum install sysstat来安装。

二、格式说明

代码语言:javascript
复制
mpstat [ options ] [ <interval> [ <count> ] ]
mpstat [参数]

Usage: mpstat [ options ] [ <interval> [ <count> ] ]
Options are:
[ -A ] [ -u ] [ -V ] [ -I { SUM | CPU | SCPU | ALL } ]
[ -P { <cpu> [,...] | ON | ALL } ]

三、选项说明

代码语言:javascript
复制
-A  等同于-u -I ALL -P ALL
-I  可以指定SUM CPU SCPU ALL四个参数,SUM表示每个处理器的中断总数,CPU表示每个核的每秒中断数量, SCPU表示每个核每秒的软中断数量,内核版本在2.6.31之后才支持。
-P  统计的CPU编号,一般用ALL
-u  输出列的信息
-V  查看工具版本号

delay  采样间隔
count  采样次数

四、命令功能

显示随着时间变化的CPU数据,方便找出CPU使用率与时间的关系

五、常见用法

5.1 执行监控第一个CPU
代码语言:javascript
复制
# mpstat -P 1

Linux 3.10.0-1127.19.1.el7.x86_64 (service-01)  11/15/2021      _x86_64_        (4 CPU)

03:00:24 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
03:00:24 PM    1    0.29    0.00    0.28    0.03    0.00    0.00    0.00    0.00    0.00   99.41

CPU	    处理器ID
%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
%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_pre
5.2 执行监控全部CPU
代码语言:javascript
复制
# mpstat -P ALL

Linux 3.10.0-1127.19.1.el7.x86_64 (service-01)  11/15/2021      _x86_64_        (4 CPU)

03:00:49 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
03:00:49 PM  all    0.28    0.00    0.28    0.03    0.00    0.00    0.00    0.00    0.00   99.40
03:00:49 PM    0    0.29    0.00    0.28    0.08    0.00    0.00    0.00    0.00    0.00   99.35
03:00:49 PM    1    0.29    0.00    0.28    0.03    0.00    0.00    0.00    0.00    0.00   99.41
03:00:49 PM    2    0.29    0.00    0.28    0.01    0.00    0.00    0.00    0.00    0.00   99.42
03:00:49 PM    3    0.27    0.00    0.27    0.01    0.00    0.00    0.00    0.00    0.00   99.44
5.3 每隔1个时间单位统计5次
代码语言:javascript
复制
# mpstat 1 5

Linux 3.10.0-1127.19.1.el7.x86_64 (service-01)  11/15/2021      _x86_64_        (4 CPU)

03:01:26 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
03:01:27 PM  all    0.25    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   99.25
03:01:28 PM  all    0.00    0.00    0.25    0.00    0.00    0.00    0.00    0.00    0.00   99.75
03:01:29 PM  all    0.50    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   99.00
03:01:30 PM  all    0.25    0.00    0.50    0.50    0.00    0.00    0.00    0.00    0.00   98.75
03:01:31 PM  all    0.25    0.00    0.25    0.00    0.00    0.00    0.00    0.00    0.00   99.50
Average:     all    0.25    0.00    0.40    0.10    0.00    0.00    0.00    0.00    0.00   99.25
5.4 查看软中断统计信息
代码语言:javascript
复制
#每间隔1秒统计一次,总共统计2次
# mpstat -I SCPU 1 2

Linux 3.10.0-1127.19.1.el7.x86_64 (service-01)  11/15/2021      _x86_64_        (4 CPU)

03:14:43 PM  CPU       HI/s    TIMER/s   NET_TX/s   NET_RX/s    BLOCK/s BLOCK_IOPOLL/s  TASKLET/s    SCHED/s  HRTIMER/s      RCU/s
03:14:44 PM    0       0.00      71.00       0.00      20.00       1.00       0.00       0.00      30.00       0.00      41.00
03:14:44 PM    1       0.00      64.00       0.00      12.00       0.00       0.00       0.00      13.00       0.00      42.00
03:14:44 PM    2       0.00      71.00       0.00       2.00       0.00       0.00       0.00      16.00       0.00      53.00
03:14:44 PM    3       0.00     115.00       0.00       0.00       0.00       0.00       0.00      25.00       0.00      66.00
03:14:45 PM    0       0.00      55.00       0.00       6.00       5.00       0.00       0.00      26.00       0.00      35.00
03:14:45 PM    1       0.00      14.00       0.00       2.00       0.00       0.00       0.00       3.00       0.00       9.00
03:14:45 PM    2       0.00      36.00       0.00       2.00       0.00       0.00       0.00      10.00       0.00      21.00
03:14:45 PM    3       0.00      81.00       0.00       0.00       0.00       0.00       0.00      18.00       0.00      45.00
Average:       0       0.00      63.00       0.00      13.00       3.00       0.00       0.00      28.00       0.00      38.00
Average:       1       0.00      39.00       0.00       7.00       0.00       0.00       0.00       8.00       0.00      25.50
Average:       2       0.00      53.50       0.00       2.00       0.00       0.00       0.00      13.00       0.00      37.00
Average:       3       0.00      98.00       0.00       0.00       0.00       0.00       0.00      21.50       0.00      55.50

六、拓展-vmstat和mpstat差别

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

2.vmstat中所有关于CPU的总结都适合mpstat。当 %idle 数字较低时,一般说明出现了 CPU 不足的问题。当 %iowait 数字较高时,一般当前负载下 I/O 子系统出现了某些问题。

本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/196

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-11-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、简介
  • 二、格式说明
  • 三、选项说明
  • 四、命令功能
  • 五、常见用法
    • 5.1 执行监控第一个CPU
      • 5.2 执行监控全部CPU
        • 5.3 每隔1个时间单位统计5次
          • 5.4 查看软中断统计信息
          • 六、拓展-vmstat和mpstat差别
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档