今天我就来和大家聊聊如何在Linux中使用mpstat命令,这个可能很多人都不太懂。为了让大家更好的了解,本站为大家总结了以下内容。希望大家能从这篇文章中有所收获。
Mpstat是多处理器统计的缩写,是一个实时系统监控工具。它报告一些关于CPU的统计信息,这些信息存储在/proc/stat文件中。在多CPU系统中,不仅可以查看所有CPU的平均状态信息,还可以查看特定CPU的信息。mpstat最大的特点是可以查看多核cpu中各个计算核心的统计数据;然而,类似的工具vmstat只能检查系统的整体cpu状况。
mpstat命令主要用于多CPU环境,它显示每个可用CPU的状态是你想要的。该信息存储在/proc/stat文件中。在多CPU系统中,不仅可以查看所有CPU的平均状态信息,还可以查看特定CPU的信息。
语法
Mpstat(选项)(参数)
mpstat[-P { | ALL }][内部[计数]]
参数解释
-P{|ALL}表示监控哪个cpu,cpu取[0,CPU号-1]中的值
内部相邻两个采样间隔时间、
计数采样次数,计数只能延迟使用
当没有参数时,mpstat显示系统启动后所有信息的平均值。有区间时,第一行的信息是系统启动以来的平均信息。从第二行开始,输出的是前一个区间周期的平均信息。选项
-P:指定CPU号。
参数
时间间隔:每次报告的时间间隔(秒);
次数:报告显示的次数。
实例
当mpstat不带参数时,输出为从系统启动以来的平均值。
系统的工具
2005年12月16日
09:38336046 MCpu % user % nice % system % low ait % IRQ % soft % idle int/s
每2秒产生了2个处理器的统计数据报告:09:38336048阿马尔23 . 280 . 001 . 750 . 500 . 000 . 00741007409
以下命令可以每2秒生成2个处理器的统计报告,总共生成3个区间的信息,然后给出这3个区间的平均信息。默认情况下,输出按CPU号排序。第一行给出了自系统启动以来的所有活动数据。下一行对应一个处理器的活动状态。
mpstat-PAL23
Linux 2 . 6 . 18-164 . el5(server . sys.com)01/04/2010
09:34336020 PMCPU % user % nice % sys % low ait % IRQ % soft % steak % idle int/s
09:34336022 mall 0 . 000 . 000 . 000 . 000 . 000 . 000 . 001 . 49
09:34336022pm 00 . 000 . 000 . 500 . 000 . 000 . 000 . 000 . 0099 . 501001 . 00
09:34336022 p 10 . 000 . 000 . 000 . 000 . 000 . 000 . 00100 . 000 . 00比较带参数和不带参数的mpstat的结果:
在后台打开一个2G文件
cat 1.img
然后在另一个终端上运行mpstat命令
系统的工具
Linux 2 . 6 . 18-164 . el5(server . sys.com)01/04/2010
10:17:31 mcpu % user % nice % sys % low ait % IRQ % soft % steak % idle int/s
10:17:31 ppm 0 . 070 . 020 . 250 . 210 . 010 . 040 . 0099 . 401004 . 57 pstat
Linux 2 . 6 . 18-164 . el5(server . sys.com)01/04/2010
10:17:35 mcpu % user % nice % sys % low ait % IRQ % soft % steak % idle int/s
10:17:35 mall 0 . 070 . 020 . 250 . 210 . 010 . 040 . 0099 . 391004 . 73 mpstat 310
Linux 2 . 6 . 18-164 . el5(server . sys.com)01/04/2010
10:17:55 mcpu % user % nice % sys % low ait % IRQ % soft % steak % idle int/s
10:17:58 pmall 13 . 120 . 0020 . 930 . 001 . 839 . 800 . 00
54.322488.08
10:18:01PMall10.820.0019.300.831.839.320.0057.902449.83
10:18:04PMall10.950.0020.400.171.998.620.0057.882384.05
10:18:07PMall10.470.0018.110.001.508.470.0061.462416.00
10:18:10PMall11.810.0022.630.001.8311.980.0051.752210.60
10:18:13PMall6.310.0010.800.001.005.320.0076.581795.33
10:18:19PMall1.750.003.160.750.251.250.0092.851245.18
10:18:22PMall11.940.0019.070.001.998.290.0058.712630.46
10:18:25PMall11.650.0019.300.502.009.150.0057.402673.91
10:18:28PMall11.440.0021.060.331.9910.610.0054.562369.87
Average:all9.270.0016.180.301.507.640.0065.112173.54
上两表显示出当要正确反映系统的情况,需要正确使用命令的参数。vmstat 和iostat 也需要注意这一问题。
查看多核CPU核心的当前运行状况信息, 每2秒更新一次
mpstat219:45:12CPU%usr%nice%sys%iowait%irq%soft%steal%guest%idle 19:45:14all0.040.000.000.000.000.000.000.0099.96 19:45:16all0.000.000.000.030.000.000.000.0099.97 19:45:18all0.000.070.070.000.000.000.000.0099.87
如果要看每个cpu核心的详细当前运行状况信息,输出如下:
mpstat-PALL2 19:43:58CPU%usr%nice%sys%iowait%irq%soft%steal%guest%idle 19:43:59all0.000.000.040.000.000.000.000.0099.96 19:43:5900.000.000.000.000.000.000.000.00100.00 19:43:5910.000.000.000.000.000.000.000.00100.00 ....... 19:43:59130.990.000.000.000.000.000.000.0099.01 19:43:59140.000.000.000.000.000.000.000.00100.00 19:43:59150.000.000.000.000.000.000.000.00100.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时间前的值。上表中的所有值可取到两位小数点。
看完上述内容,你们对如何在Linux中使用mpstat命令有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
(茶猫云主机知识内容来源于IDC同行,若侵权,请联系我们删除)