vmstat可以查看系统的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况,相比top,可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率,当w命令中load average值过高时,可以通过该工具查看系统资源使用的详细信息。
vmstat工具一般使用2个参数,一是打印信息的间隔时间,二是打印次数:
[root@localhost ~]# vmstat 1 5
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 684660 2108 187936 0 0 3 3 28 47 0 0 100 0 0
0 0 0 684636 2108 187936 0 0 0 0 33 47 0 0 100 0 0
0 0 0 684636 2108 187936 0 0 0 0 27 41 0 0 100 0 0
0 0 0 684636 2108 187936 0 0 0 0 25 32 0 0 100 0 0
0 0 0 684636 2108 187936 0 0 0 0 27 40 0 0 100 0 0
*示例表示每隔1秒打印一次信息,共打印五次
进程
r :表示运行队列中进程数量(等待使用cpu的进程数量),当值长期超过cpu核数,表示cpu高负载
b :阻塞进程(等待IO的进程数量)
内存
swpd :当值大于0时表示物理内存不足,已经开始使用虚拟内存
free :空闲内存
buff :缓冲内存大小
cache :缓存内存大小
swap
si:表示每秒有多少数据从swap进入内存,单位K
so:表示每秒有多少数据从内存进入交换区,单位K
*这2个值如果长期大于0,系统性能会受到影响,磁盘IO和CPU资源都会被消耗,当swpd大于0时,si、so没有变化的话,对系统性能暂时没有影响
IO(和磁盘有关,centos7版本块大小为4kb)
bi:内存从磁盘中每秒读取的块数
bo:内存每秒写入磁盘的块数
system
in:每秒中断数
cs:每秒上下文切换数
*这两个值越大表示内核消耗cpu的时间变大,cpu充分使用率较低
cpu(百分比)
us:user time 用户进程执行时间百分比,长期大于50,表示资源紧张
sy:system time 系统进程执行时间百分比,sy值过高说明系统内核消耗CPU资源过高
id:空闲时间占比
us+sy+id=100
wa:等待IO的cpu时间