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

Linux命令之mpstat

作者头像
AsiaYe
发布2020-02-17 11:45:16
6720
发布2020-02-17 11:45:16
举报
文章被收录于专栏:DBA随笔

//

远程办公第一天

//

今天是立春,春天就要来了,一切都要过去了。

这两天疫情还在高峰期,确诊的病例依旧增多,本来想着坐火车来北京的,但是鉴于北京的确诊病例比较多,最终还是自驾13个小时来北京了,"进京难,难于上青天",各个高速路口都被封着,只开通了几个出口,我们在高速路上绕了好几个弯最后找到了一条可以通行的路。下了告诉,紧接着是长达两个小时的排队测体温,从进京的这个节奏看,2020,注定是不简单的一年~

最近还是不要聚集了,北京已经发生了多起聚集传染事件,大家还是要重视起来,出门戴口罩,除此之外,最近已经证实了粪口传播的可能性,一定要记得勤洗手。这次来北京我做的第一件事情就是去超市购物,想买洗手液,发现洗手液都被买空了,于是买了个硫磺皂来代替。

今天第一天远程工作,还是有点不习惯,笔记本电脑上有一些环境还没有配置好,有些文档类的东西还在公司没有拷贝过来,干不了那些重要的事情,最近准备研究研究MySQL8.0的一些新特性,到时候挑拣出来一些比较有用的特性分享出来,大家一起看看。

本来想了很多工作学习计划,但是鉴于最近情况特殊,暂时把目标设定为:好好活着~

最后,写一个前段时间帮朋友解决的Linux小问题。

我们知道,在Linux中,使用top命令,然后点击按键1,会显示所有的cpu信息,如下:

如何将这些信息保存在一个文件里面呢?我们知道top命令显示的内容是每2s实时刷新的,想要保存在文件里面不是很容易。

代码语言:javascript
复制
top - 23:33:33 up 32 days,  5:37,  1 user,  load average: 0.00, 0.15, 0.56
Tasks: 144 total,   1 running, 143 sleeping,   0 stopped,   0 zombie
Cpu0  :  0.3%us,  0.3%sy,  0.0%ni, 96.7%id,  2.7%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  :  0.3%us,  0.3%sy,  0.0%ni, 99.0%id,  0.3%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu2  :  0.7%us,  0.0%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu3  :  0.3%us,  0.0%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

这个问题其实可以换一种思路,要想得到CPU的信息,其实可以使用mpstat命令来代替,该命令可以显示CPU的状态信息,如果有多个CPU,该命令可以查看任意一个CPU的状态,该命令的参数最重要的是-P参数,该参数后面可以跟制定的cpu编号或者所有cpu,使用方法如下:

代码语言:javascript
复制
[root@ ~]# mpstat --help
Usage: mpstat [ options ] [ <interval> [ <count> ] ]
Options are:
[ -A ] [ -I { SUM | CPU | ALL } ] [ -u ]
[ -P { <cpu> [,...] | ON | ALL } ] [ -V ]

从介绍里面不难看出,有-A和-P两个参数,其中-P参数较为常用,用法里面的interval是指显示时间间隔,count是指显示次数,如下命令:mpstat -P 2 1 2 是指将编号为2的CPU信息每隔1秒显示出来,显示2次,结果如下:

代码语言:javascript
复制
[root ~]# mpstat -P 2 1 2  
Linux 2.6.32-696.16.1.el6.x86_64 (HB110-QY-KDC-DBLOG-102-210)   02/04/2020      _x86_64_        (4 CPU)

11:43:17 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
11:43:18 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
11:43:19 PM    2    1.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.00
Average:       2    0.50    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.50

我们可以看到,最后面比较友好的输出了一个平均值。

同理,显示所有的CPU信息就可以使用:mpstat -P ALL 1 2

如下:

代码语言:javascript
复制
[root@ ~]# mpstat -P ALL 1 2
Linux 2.6.32-696.16.1.el6.x86_64 (HB110-QY-KDC-DBLOG-102-210)   02/04/2020      _x86_64_        (4 CPU)

11:39:45 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
11:39:46 PM  all    0.50    0.00    0.25    1.00    0.00    0.00    0.00    0.00   98.25
11:39:46 PM    0    0.00    0.00    0.00    4.00    0.00    0.00    0.00    0.00   96.00
11:39:46 PM    1    0.99    0.00    0.00    0.99    0.00    0.00    0.00    0.00   98.02
11:39:46 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
11:39:46 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

11:39:46 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
11:39:47 PM  all    0.50    0.00    0.25    0.75    0.00    0.00    0.00    0.00   98.49
11:39:47 PM    0    0.00    0.00    0.00    2.04    0.00    0.00    0.00    0.00   97.96
11:39:47 PM    1    0.00    0.00    1.01    0.00    0.00    0.00    0.00    0.00   98.99
11:39:47 PM    2    1.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.00
11:39:47 PM    3    1.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00   98.00

Average:     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
Average:     all    0.50    0.00    0.25    0.88    0.00    0.00    0.00    0.00   98.37
Average:       0    0.00    0.00    0.00    3.03    0.00    0.00    0.00    0.00   96.97
Average:       1    0.50    0.00    0.50    0.50    0.00    0.00    0.00    0.00   98.50
Average:       2    0.50    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.50
Average:       3    0.50    0.00    0.50    0.00    0.00    0.00    0.00    0.00   98.99

在输出的结果列中,各个列的含义如下:

%user:表示处理用户进程所使用CPU的百分比。用户进程是用于应用程序的非内核进程;

%nice:表示使用nice命令对进程进行降级时CPU的百分比;

%system:表示内核进程使用的CPU百分比;

%iowait:表示等待进行I/O所使用的CPU时间百分比;

%irq:表示用于处理系统中断的CPU百分比;

%soft:表示用于软件中断的CPU百分比;

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

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

%idle:显示CPU的空闲时间;

%intr/s:显示每秒CPU接收的中断总数;

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DBA随笔 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档