vmstat命令——监控给定时间间隔的服务器的状态值
vmstat n m 时间间隔为n秒,采集m组数据
vmstat n 时间间隔为n秒
# vmstat 2 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 252 99272 148444 614268 0 0 0 9 4 2 0 0 99 0 0 0 0 252 99264 148444 614288 0 0 0 0 61 101 0 0 100 0 0 0 0 252 98780 148444 614288 0 0 0 0 89 195 1 1 97 0 0
===proces===
r:表示运行队列(就是说多少个进程真的分配到CPU)
b:表示阻塞的进程
*分析
(1)r:当这个值超过了CPU数目,就会出现CPU瓶颈;如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高
===memory内存使用率===
swpd:虚拟内存已使用的大小
free:空闲的物理内存大小
buff:目录占用的缓存大小
cache:文件占用的缓存大小
*分析
(1)swpd:这个值如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器
===swap虚拟内存交换情况===
si:每秒从磁盘读入虚拟内存的大小
so:每秒虚拟内存写入磁盘的大小
*分析
(1)si:如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉
(2)so:如果这个值大于0,同上
===IO读写情况===
bi:块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte
in:每秒CPU的中断次数,包括时间中断
cs:每秒上下文切换次数
===cpu使用率===
us:用户cpu时间
sy:系统cpu时间
id:空闲cpu时间
wa:等待io的cpu时间