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


    11.5 vmstat:虚拟内存统计

    11.5.1 命令详解

    【命令星级】 ★★★★☆

    【功能说明】

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

    【语法格式】

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

    说明:

    ​ 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

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

    ​ 第一列: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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    ​ 使用-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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    ​ 这些信息分别来自于/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
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

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

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

    ​ 这些信息主要来自于/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
    • 2

    说明:

    ​ 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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

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

    ​ 第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
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    python与pycharm配置http服务
    java计算机毕业设计高校招生管理系统MyBatis+系统+LW文档+源码+调试部署
    SCI常见词汇表达
    FFmpeg源码:get_bit_length函数分析
    分布式系统(Distributed Systems)概述
    如何在Ubuntu的根目录下创建&删除目录
    LaTeX之一:macos上latex环境搭建(homebrew安装+vscode配置+ MacTex)和B站视频、网站、教程等相关资料推荐(Overleaf、公式预览网站)
    Go语言errors的使用
    面经-LinkedList与ArrayList比较
    云原生周刊:Kubernetes v1.30 发布 | 2024.4.22
  • 原文地址:https://blog.csdn.net/qq_25599925/article/details/126541867