linux性能监控调优工具vmstat:
vmstat:用于监控、显示系统运行过程中的虚拟内存/CPU/磁盘状态。
简单示例(时间间隔2s,监控2次):
重要字段解释:
r 表示运行队列(等待运行的进程数)
b 表示阻塞的进程
swpd 虚拟内存已使用的大小
free 空闲的物理内存的大小,我的机器内存总共8G,剩余3415M。
in 每秒CPU的中断次数,包括时间中断
cs 每秒上下文切换次数,比如系统调用,线程的切换。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。
us 用户CPU时间。
sy 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。
id 空闲 CPU时间,一般来说,id + us + sy = 100。
wt 等待IO CPU时间。
典型的问题现象:
1.CPU问题
a.procs.r持续有值,且大于系统CPU数量,则认为系统不足以支撑当前的负载(因为一直有进程在等待运行),可能是软件实现问题或者需要升级硬件系统
b.cpu.id持续为0,表示CPU持续忙,需要根据cpu.sy,cpu.us继续查找原因
c.cpu.sy,cpu.us持续高,且cpu.sy大于cpu.us表示系统频繁在内核态执行,可能存在频繁的或较多的系统调用或者IO访问
2.内存问题
a.memory.swpd数值持续有值,说明系统内存不足且使用了虚拟内存,需要加大内存。