Linux(CentOS)性能监控命令vmstat

1、简介

Vmstat也是一个功能比较齐全的性能检测工具,可以统计CPU、内存使用情况、swap使用情况等信息,不足之处是无法对某个进程进行深入分析。和sar类似,也可以指定采集周期和次数。下面是每秒采样一次,共计3次:

[root@Beta-nginx ~]# vmstat 1 3
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 11858152 1347368 357384    0    0     2     3    2    4  0  0 100  0  0
 0  0      0 11858276 1347368 357396    0    0     0     0  114  157  0  0 100  0  0
 0  0      0 11858268 1347368 357412    0    0     0    68   91  139  0  0 100  0  0
[root@Beta-nginx ~]# 

2、分析:

  1. Procs
    r:等表示运行和等待CPU时间片的进程数,如果这个值长期大于系统CPU个数,就说明CPU资源不足,可以考虑增加CPU;
    b:处表示在等待资源的进程数,比如正在等待I/O或者内存交换等
  2. Memory
    swpd:虚拟内存使用情况,单位:KB,表示切换到内存交换区的内存大小,如果swap值不为0或者比较大,只要si、so的值长期为0,这种情况一般属于正常情况。
    free:空闲的物理内存,单位KB
    buff:用作缓存的内存大小,单位KB(将要写入磁盘的),表示buffers cached内存大小,也就是缓冲大小,一般对块设备的读写才需要缓冲。
    cache:用作缓存的内存大小,单位KB(从磁盘中读出来的)。表示page cached的内存大小,也就是缓冲大小,一般作为文件系统进行缓冲,频繁访问的文件都会被缓存,如果cache值非常大说明缓存文件比较多,如果此时io中的bi比较小,说明文件系统效率比较好。
  3. swap
    si:从磁盘交换到内存的交换页数量,单位:KB/S(每秒从交换区写到内存的大小);表示从磁盘调入内存,也就是内存进入内存交换区的内存大小;
    so:从内存交换到磁盘的交换页数量,单位:KB/S(每秒写入交换区的内存大小),也就是由内存交换区进入内存的内存大小;
    一般情况下,si、so的值都为0,如果si、so的值长期不为0,则说明系统内存不足,需要增加系统内存;
  4. io
    bi:由块设备读入数据的总量,即读磁盘,单位kb/s
    bo:写到块设备数据的总量,即写磁盘,单位kb/s
    如果bi+bo值过大(超过1000算大),且wa值较大,则表示系统磁盘IO瓶颈
  5. system
    in:表示某一时间间隔内观测到的每秒设备的中断数,包括时钟中断
    cs:每秒产生的上下文切换次数
    这2个值越大,则由内核消耗的CPU就越多。
  6. cpu
    us:用户进程消耗的CPU时间百分比,us值越高,说明用户进程消耗cpu时间越多,如果长期大于50%,则需要考虑优化程序或算法。
    sy:表示系统内核进程消耗的CPU时间百分比,一般来说us+sy应该小于80%,如果大于80%,说明可能出现CPU瓶颈
    id:空闲状态的时间百分比(包括IO等待时间)
    wa:表示IO等待所占用的CPU时间百分比,wa值越高,说明IO等待越严重。如果wa值超过20%,说明IO等待严重;引起I/O等待的原因可能是磁盘大量随机读写造成的,也可能是磁盘或者磁盘访问监控器的带宽瓶颈(主要是块操作)造成的

综上所述,如果评估CPU,需要重点关注procs项的r列值和CPU项的us、sy、wa列的值

st:一般不关注,虚拟机占用时间百分比

3、vmstat命令参数用法

[root@Beta-nginx ~]# vmstat -h
usage: vmstat [-V] [-n] [delay [count]]
              -V prints version.
              -n causes the headers not to be reprinted regularly.
              -a print inactive/active page stats.
              -d prints disk statistics
              -D prints disk table
              -p prints disk partition statistics
              -s prints vm table
              -m prints slabinfo
              -t add timestamp to output
              -S unit size
              delay is the delay between updates in seconds. 
              unit size k:1000 K:1024 m:1000000 M:1048576 (default is K)
              count is the number of updates.
[root@Beta-nginx ~]# 
  • -a:显示活跃和非活跃内存
  • -m:显示slabinfo
  • -n:只在开始时显示一次各字段名称
  • -s:显示内存相关统计信息及多种系统活动数量
  • delay:刷新时间间隔,如果不指定,只显示一条结果
  • count:刷新次数,如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷
  • -d:显示各个磁盘相关统计信息。
  • -S:使用指定单位显示。参数有k、K、m、M,分别代表1000、1024、1000000、1048576字节(bype)。默认单位为K(1024 bytes)
  • -V:显示vmstat版本信息
  • -p:显示指定磁盘分区统计信息
  • -D:显示磁盘总体信息

你可能感兴趣的:(Linux)