跳转至

vmstat

vmstat命令的含义为显示虚拟内存状态(“Viryual Memor Statics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。

vmstat选项参数

-a:显示活动内页; -f:显示启动后创建的进程总数; -m:显示slab信息; -n:头信息仅显示一次; -s:以表格方式显示事件计数器和内存状态; -d:报告磁盘状态; -p:显示指定的硬盘分区状态; -S:输出信息的单位。 -w, --wide 详细内容 -t, --timestamp 显示时间戳 -h, --help 显示帮助 -V, --version 显示版本

[root@VM-0-16-centos ~]# vmstat -wt 1 3
procs -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu-------- -----timestamp-----
 r  b         swpd         free         buff        cache   si   so    bi    bo   in   cs  us  sy  id  wa  st                 CST
 1  0            0      6388276       257024      1030324    0    0     0     1    0    2   0   0 100   0   0 2022-05-20 02:03:35
 0  0            0      6388136       257024      1030324    0    0     0    16 1576 3013   0   0 100   0   0 2022-05-20 02:03:36
 0  0            0      6388136       257024      1030324    0    0     0     0 1523 2974   0   0 100   0   0 2022-05-20 02:03:37
  • "vmstat命令详情"

  • "r:运行队列中线程数量,r+b的值,应该小于cpu个数的两倍"

  • "b:IO发生阻塞的线程数量,当b数量大于5时,应该排查磁盘或者swap"
  • "swpd:使用虚拟内存大小"
  • "free:可用内存大小"
  • "buff:用于缓冲的内存大小"
  • "cache:用于缓存的内存大小"
  • "cache是被从磁盘中读出来的,而buff是即将要被写入磁盘的"
  • "si:每秒从交换区写到内存的大小,如果这个值大于0,说明内存不足"
  • "so:每秒从内存写到交换区的大小"
  • "bi:每秒读取的块数"
  • "bo:每秒写入的块数"
  • "in:每秒的中断数,包括时钟。"
  • "cs:每秒上下文切换数,如果cs数字远大于in的数字,说明系统在忙于分配任务,没有忙于在任务上"
  • "us:用户进程执行时间"
  • "sy:系统进程执行时间"
  • "id:空闲时间(包括IO等待时间)"
  • "wa:等待IO时间"
  • "st:从虚拟机窃取的时间。 在Linux 2.6.11之前,未知"

vmstat -a 2 5

-a 显示活跃和非活跃内存,所显示的内容除增加inact和active

[root@VM-0-16-centos ~]# 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
 3  0      0 6387664 473120 890368    0    0     0     1    0    0  0  0 100  0  0
 0  0      0 6387516 473120 890612    0    0     0     0 1545 2986  0  0 100  0  0
 0  0      0 6387392 473120 890612    0    0     0     0 1556 3026  0  0 100  0  0
 0  0      0 6387268 473120 890612    0    0     0     6 1530 2984  0  0 100  0  0
 1  0      0 6387268 473120 890612    0    0     0     0 1545 3010  0  0 100  0  0

vmstat -f

显示从系统启动至今的fork数量,linux下创建进程的系统调用是fork

说明:信息是从/proc/stat中的processes字段里取得的

$ vmstat -f
351164 forks

vmstat -s

显示内存相关统计信息及多种系统活动数量

说明:这些信息的分别来自于/proc/meminfo,/proc/stat和/proc/vmstat

[root@VM-0-16-centos ~]# vmstat -s
      8008632 K total memory
       332136 K used memory
       889664 K active memory
       473120 K inactive memory
      6389112 K free memory
       257024 K buffer memory
      1030360 K swap cache
            0 K total swap
            0 K used swap
            0 K free swap
      1556482 non-nice user cpu ticks
          669 nice user cpu ticks
      2101154 system cpu ticks
   2039287171 idle cpu ticks
       108247 IO-wait cpu ticks
            0 IRQ cpu ticks
          846 softirq cpu ticks
            0 stolen cpu ticks
      4931445 pages paged in
     21441536 pages paged out
            0 pages swapped in
            0 pages swapped out
   3703040179 interrupts
   2621374916 CPU context switches
   1647854161 boot time
       351175 forks
[root@VM-0-16-centos ~]# 

vmstat -d

查看磁盘的读写

说明:这些信息主要来自于/proc/diskstats

[root@VM-0-16-centos ~]# vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
       total merged sectors      ms  total merged sectors      ms    cur    sec
vda    92280    820 9843254  345762 3037845 1006144 42883201 5918518      0   1830
vdb      387      0   18920     188      0      0       0       0      0      0
sr0       99      0     716      18      0      0       0       0      0      0
[root@VM-0-16-centos ~]#

vmstat -p /dev/vda1

显示指定磁盘分区统计信息

说明:这些信息主要来自于/proc/diskstats.

reads:来自于这个分区的读的次数。

read sectors:来自于这个分区的读扇区的次数。

writes:来自于这个分区的写的次数。

requested writes:来自于这个分区的写请求次数。

[root@VM-0-16-centos ~]# vmstat -p /dev/vda1
vda1          reads   read sectors  writes    requested writes
               92247    9840886    3019912   42883513

vmstat -m

查看系统的slab信息

[root@VM-0-16-centos ~]# vmstat -m
Cache                       Num  Total   Size  Pages
fuse_request                  0      0    416     19
fuse_inode                    0      0    768     21
isofs_inode_cache            50     50    640     25
mlx_compat_radix_tree_node     28     28    584     28
ext4_groupinfo_4k           420    420    136     30
ext4_inode_cache          32421  32432   1024     16
ext4_xattr                  138    138     88     46
ext4_free_data             1024   1024     64     64
ext4_allocation_context     128    128    128     32
...