L77.linux命令每日一练 -- 第11章 Linux系统管理命令 -- vmstat和mpstat

11.5 vmstat:虚拟内存统计

11.5.1 命令详解

【命令星级】 ★★★★☆

【功能说明】

​ vmstat是Virtual Memory Statistics(虚拟内存统计)的缩写,利用vmstat命令可以对操作系统的内存信息、进程状态和CPU活动等进行监视。但是只能对系统的整体情况进行统计,无法对某个进程进行深入分析。

【语法格式】

vmstat [option] [delay [count]]
vmstat [选项] [时间间隔[次数]] 

说明:

​ 1)在vmstat命令及后面的选项里,每个元素之间都至少要有一个空格。

​ 2)delay表示两次输出之间的间隔时间。

​ 3)count表示按照delay指定的时间间隔统计的次数。

【选项说明】

​ 表11-4针对该命令的参数选项进行了说明。

​ 表11-4 vmstat命令的参数选项及说明

在这里插入图片描述

11.5.2 使用范例

​ **范例11-12:**显示虚拟内存的使用情况。

[root@centos7 ~]# vmstat	#如果省略“间隔时间”和“次数”的参数,则仅显示一次报告后就退出。
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 287344   2076 520512    0    0    14     9   41   68  0  0 99  0  0
[root@centos7 ~]# vmstat 5	#表示每5秒钟更新一次输出信息,循环输出,按Ctrl+c组合键停止输出。
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 287468   2076 520544    0    0    14     9   41   68  0  0 99  0  0
^C
[root@centos7 ~]# vmstat 5 6	#表示每5秒钟更新一次输出信息,统计6次后停止输出。
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 287468   2076 520544    0    0    14     9   41   68  0  0 99  0  0
 0  0      0 287468   2076 520544    0    0     0     0   32   43  0  0 100  0  0
 0  0      0 287468   2076 520544    0    0     0     0   26   34  0  0 100  0  0
 0  0      0 287468   2076 520544    0    0     0     0   27   38  0  0 100  0  0
 0  0      0 287468   2076 520544    0    0     0     0   26   36  0  0 100  0  0
 0  0      0 287468   2076 520544    0    0     0     0   28   38  0  0 100  0  0

​ 以下是命令结果的详细说明:

​ 第一列:procs。

  • r列表示运行和等待CPU时间片的进程数。
  • b列表示正在等待资源的进程数。

​ 第2列:memory。

  • swpd列表示使用虚拟内存的大小。
  • free列表示当前空闲的物理内存数量。
  • buff列表示buffers的内存数量。
  • cache列表示cache的内存数量。

​ 第3列:swap。

  • si(swap in)列表示由磁盘调入内存,也就是内存进入内存交换区的数量。
  • so(swap on)列表示由内存调入磁盘,也就是内存交换区进入内存的数量。

​ 第4列:I/O项显示磁盘读写状况。

  • bi列表示从块设备读入数据的总量(即读磁盘)(块/s)。
  • bo列表示写入块设备的数据总量(即写磁盘)(块/s)。

​ 第5列:system显示采集间隔内发生的中断数。

  • in列表示在某以时间间隔中观测到的每秒设备中断数。
  • cs列表示每秒产生的上下文切换次数。

​ 第6列:CPU项显示了CPU的使用状态。

  • us列显示了用户进程消耗的CPU时间百分比。
  • sy列显示了系统(内核)进程小号的CPU时间百分比。
  • id列显示了CPU处于空闲状态的时间百分比。
  • wa列显示了I/O等待所占用的CPU时间百分比。
  • st列显示了虚拟机占用的CPU时间的百分比。

​ **范例11-13:**显示活跃和非活跃内存。

[root@centos7 ~]# vmstat -a 2 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 287360 155944 405728    0    0    13     8   41   67  0  0 99  0  0
 0  0      0 287360 155944 405732    0    0     0     0   31   44  0  1 100  0  0
 0  0      0 287360 155944 405732    0    0     0     0   29   38  0  0 100  0  0
 0  0      0 287360 155944 405732    0    0     0     0   27   37  0  0 100  0  0
 0  0      0 287360 155944 405732    0    0     0     0   28   36  0  0 100  0  0

​ 使用-a选项显示活跃和非活跃内存时,所显示的内容除去增加了inact和active之外,其他显示内容与范例11-12相同。

​ memory列增加了inact和active两列,其说明具体如下。

  • inact:非活跃的内存大小(当使用-a选项时显示)。
  • active:活跃的内存大小(当使用-a选项时显示)。

​ **范例11-14:**查看内存使用的详细信息。

[root@centos7 ~]# vmstat -s
       995684 K total memory
       185732 K used memory
       405696 K active memory
       155944 K inactive memory
       287324 K free memory
         2076 K buffer memory
       520552 K swap cache
      2097148 K total swap
            0 K used swap
      2097148 K free swap
         3432 non-nice user cpu ticks
           11 nice user cpu ticks
         9153 system cpu ticks
      2538658 idle cpu ticks
          220 IO-wait cpu ticks
            0 IRQ cpu ticks
          267 softirq cpu ticks
            0 stolen cpu ticks
       336035 pages paged in
       211445 pages paged out
            0 pages swapped in
            0 pages swapped out
      1041005 interrupts
      1701007 CPU context switches
   1604123251 boot time
         3041 forks

​ 这些信息分别来自于/proc/meminfo、/proc/stat和/proc/vmstat。

​ **范例11-15:**查看磁盘的读/写。

[root@centos7 ~]# vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
       total merged sectors      ms  total merged sectors      ms    cur    sec
sda     7293      6  670015  115870   5910    371  422981   32023      0     89
sr0       18      0    2056    1173      0      0       0       0      0      0

​ 这些信息主要来自于/proc/diskstats。其中的merged表示一次来自于合并的写/读请求,系统一般会把多个连接/邻近的读/写请求合并到一起来操作。

​ **范例11-16:**查看/dev/sda1磁盘的读写统计信息。

[root@centos7 ~]# vmstat -p /dev/sda1
sda1          reads   read sectors  writes    requested writes
                1859      11345          4       4096

​ 这些信息主要来自于/proc/diskstats。各列的说明具体如下。

  • reads:来自于该分期的读的次数。
  • read sectors:来自于该分期的读扇区的次数。
  • writes:来自于该分区的写的次数。
  • requested writes:来自于该分区的写请求次数。

11.6 mpstat:CPU信息统计

11.6.1 命令详解

【命令星级】 ★★★★☆

【功能说明】

​ mpstat是Multiprocessor Statistics的缩写,是一种实时系统监控工具。mpstat命令会输出CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPU的系统里,此命令不但能用来查看所有CPU的平均状况信息,而且还能够用来查看特定CPU的信息。

​ mpstat命令的最大特点是:可以查看多核心CPU中每个计算核心的统计数据,而类似命令vmstat只能查看系统整体的CPU情况。

【语法格式】

mpstat [option] [delay [count]]
mpstat [选项] [时间间隔[次数]] 

说明:

​ 1)在mpstat命令及后面的选项里,每个元素之间都至少要有一个空格。

​ 2)delay表示两次输出之间的间隔时间。

​ 3)count表示按照delay指定的时间间隔统计的次数。

【选项说明】

​ 表11-5针对该命令的参数选项进行了说明。

​ 表11-5 mpstat命令的参数选项及说明
在这里插入图片描述

11.6.2 使用范例

​ 范例11-17:显示CPU信息统计。

[root@centos7 ~]# mpstat	#如果省略“时间间隔”和“次数”参数,则仅显示一次报告后就退出。
Linux 3.10.0-1127.19.1.el7.x86_64 (centos7) 	10/31/2020 	_x86_64_	(1 CPU)

09:12:01 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
09:12:01 PM  all    0.13    0.00    0.35    0.01    0.00    0.01    0.00    0.00    0.00   99.50
[root@centos7 ~]# mpstat 5 6	#表示每5秒更新一次输出信息,统计6次后停止输出。
Linux 3.10.0-1127.19.1.el7.x86_64 (centos7) 	10/31/2020 	_x86_64_	(1 CPU)

09:12:07 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
09:12:12 PM  all    0.20    0.00    0.20    0.00    0.00    0.00    0.00    0.00    0.00   99.60
09:12:17 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
09:12:22 PM  all    0.00    0.00    0.20    0.00    0.00    0.00    0.00    0.00    0.00   99.80
09:12:27 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
09:12:32 PM  all    0.00    0.00    0.20    0.00    0.00    0.00    0.00    0.00    0.00   99.80
09:12:37 PM  all    0.00    0.00    0.20    0.00    0.00    0.20    0.00    0.00    0.00   99.60
Average:     all    0.03    0.00    0.13    0.00    0.00    0.03    0.00    0.00    0.00   99.80

​ 以下是命令结果的详细说明。

​ 第1列:09:12:07 PM,表示当前时间。

​ 第2列: CPU,all表示所有CPU,0表示第一个CPU,…

​ 后面9列的含义分别如下。

  • %usr:用户进程消耗的CPU时间百分比。
  • %nice:改变优先级的进程占用的CPU时间百分比。
  • %sys:系统(内核)进程消耗的CPU时间百分比。
  • %iowait:IO等待所占用的CPU时间百分比。
  • %irq:硬中断占用的CPU时间百分比。
  • %soft:软中断占用的CPU时间百分比。
  • %steal:虚拟机强制CPU等待的时间百分比。
  • %guest:虚拟机占用CPU时间百分比。
  • %idle:CPU处在空闲状态的时间百分比。

​ **范例11-18:**显示指定CPU信息的统计。

[root@centos7 ~]# mpstat -P 0	#显示第一个CPU的信息。
Linux 3.10.0-1127.19.1.el7.x86_64 (centos7) 	10/31/2020 	_x86_64_	(1 CPU)

09:18:46 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
09:18:46 PM    0    0.13    0.00    0.35    0.01    0.00    0.01    0.00    0.00    0.00   99.50

猜你喜欢

转载自blog.csdn.net/qq_25599925/article/details/126541867