一 安装
安装命令
yum -y install vmstat
二 vmstat 简介
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况, IO读写情况。不足之处是无法对某个进程进行深入分析。
2表示每两秒采集一次服务器状态,20表示共采集20次。当然也可以不加后面的那个数字,那就默认持续采集,直到ctrl+c停止。
三 分析
- Procs
r:等表示运行和等待CPU时间片的进程数,如果这个值长期大于系统CPU个数,就说明CPU资源不足,可以考虑增加CPU;
b:处表示在等待资源的进程数,比如正在等待I/O或者内存交换等 - Memory
swpd:虚拟内存使用情况,单位:KB,表示切换到内存交换区的内存大小,如果swap值不为0或者比较大,只要si、so的值长期为0,这种情况一般属于正常情况。
free:空闲的物理内存,单位KB
buff:用作缓存的内存大小,单位KB(将要写入磁盘的),表示buffers cached内存大小,也就是缓冲大小,一般对块设备的读写才需要缓冲。
cache:用作缓存的内存大小,单位KB(从磁盘中读出来的)。表示page cached的内存大小,也就是缓冲大小,一般作为文件系统进行缓冲,频繁访问的文件都会被缓存,如果cache值非常大说明缓存文件比较多,如果此时io中的bi比较小,说明文件系统效率比较好。 - swap
si:从磁盘交换到内存的交换页数量,单位:KB/S(每秒从交换区写到内存的大小);表示从磁盘调入内存,也就是内存进入内存交换区的内存大小;
so:从内存交换到磁盘的交换页数量,单位:KB/S(每秒写入交换区的内存大小),也就是由内存交换区进入内存的内存大小;
一般情况下,si、so的值都为0,如果si、so的值长期不为0,则说明系统内存不足,需要增加系统内存; - io
bi:由块设备读入数据的总量,即读磁盘,单位kb/s
bo:写到块设备数据的总量,即写磁盘,单位kb/s
如果bi+bo值过大(超过1000算大),且wa值较大,则表示系统磁盘IO瓶颈 - system
in:表示某一时间间隔内观测到的每秒设备的中断数,包括时钟中断
cs:每秒产生的上下文切换次数
这2个值越大,则由内核消耗的CPU就越多。 - 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:一般不关注,虚拟机占用时间百分比
四 vmstat命令参数用法
[root@localhost ~]# vmstat -h Usage: vmstat [options] [delay [count]] Options: -a, --active active/inactive memory -f, --forks number of forks since boot -m, --slabs slabinfo -n, --one-header do not redisplay header -s, --stats event counter statistics -d, --disk disk statistics -D, --disk-sum summarize disk statistics -p, --partition <dev> partition specific statistics -S, --unit <char> define display unit -w, --wide wide output -t, --timestamp show timestamp -h, --help display this help and exit -V, --version output version information and exit For more details see vmstat(8). [root@localhost ~]#
- -a:显示活跃和非活跃内存
- -m:显示slabinfo
- -n:只在开始时显示一次各字段名称
- -s:显示内存相关统计信息及多种系统活动数量
- -d:显示各个磁盘相关统计信息。
- -S:使用指定单位显示。参数有k、K、m、M,分别代表1000、1024、1000000、1048576字节(bype)。默认单位为K(1024 bytes)
- -V:显示vmstat版本信息
- -p:显示指定磁盘分区统计信息
- -D:显示磁盘总体信息
参考:https://blog.csdn.net/duzilonglove/article/details/80181590