使用vmstat命令,输出每隔一秒,采集2次服务器的状态,包括cpu使用率,内存使用,虚拟内存交换情况,IO 读写情况:
[root@wml1 ~]# vmstat 1 2
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 1061668 88940 145568 330524 0 6 11 55 37 145 1 0 98 1 0
0 0 1061668 88932 145568 330524 0 0 0 0 37 61 0 0 100 0 0
也可以直接使用vmstat 1,每隔一秒采集一次,只要不结束程序一直采集。
r和top:表示运行队列(就是有多少个进程真的分配到cpu),当这个值超过了cpu数目,就会出现cpu瓶颈了,这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就很高,超过了10就不正常了,top 的负载类似于每秒的运行队列。如果运行队列很大,表示你的cpu很繁忙,一般会造成cpu使用率很高。b表示阻塞的进程。
Swapd:表示虚拟内存的已使用的大小,如果大于0,表示物理内存不足了,如果不是程序内存泄漏的原因,该升级内存了。
Free:空闲的物理内存的大小
Buff:linux/unix系统用来存储目录的有什么内容、权限等的缓存
Cache:直接用来记忆我们打开的文件,给文件做缓冲。
Si:每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找消耗内存进程解决掉。
So:每秒虚拟内存写入磁盘的大小
Bi:块设备每秒接收的块数量
Bo:块设备每秒发送的块数量
In:每秒 cpu 的中断次数,包括时间中断
Cs:每秒上下文切换次数
Us:用户占用cpu时间百分比
Sy:系统占用cpu时间百分比,如果太高,表示系统调用时间长,例如是IO操作频繁。
Id:空闲cpu时间百分比,如果r经常大于4,并且id经常少于40,表示cpu的负载很重。
Wa:IO等待时间百分比,过高时,说明io等待比较严重,可能是由于磁盘大量随机访问造成的,也有可能是磁盘的带宽出现瓶颈。