要学会多用vmstat去检查系统健康

这个工具真的很重要,在绝大多数Linux和Unix都能使,如我正在用AIX,Solaris和CentOS上^_^。

vmstat 全称虽然叫Virtual Memory Statistics,但是他却是能对系统的进程,内存使用情况,交换页,IO块,中断以及CPU使用情况进行统计并报告相应的信息。

先try一下,在Solaris 10 SPARC终端下输入vmstat 5 5,便可以得到下面一串信息:

要学会多用vmstat去检查系统健康_第1张图片

 

vmstat 5 5满足vmstat T[n] N[5]格式,表示T秒内进行N次采样,要注意的是第一个"数据行"指出了计算机自上次重启至今的平均使用情况。后面的每一行信息是按 延时定期地显示系统的各部分信息。进程信息和内存信息都是即时产生的。

有时候我们需要关注进程和CPU使用状况,我们一般关注r,b,w,id这个参数(在上图中已经标记):

(1)r(running):指运行队列中的进程数,即表示正在运行或者正在等待CPU时间的进程数,如果这个参数值超过服务器上cpu的数量,就可能存在cpu瓶颈,有一些任务要等待执行。当业务繁忙的时候,不超过2倍cpu数量,还是可以认为合理的。

(2)b(blocked):被阻塞的进程(由于I/O,换页等)。正常情况下是0比较好。

(3)w(swapped):表示当前需要释放内存、交换出去的进程数量。正常情况下为0比较好.

(4)id(idle):表示空闲cpu的百分比。

如图所示的这台机器,就是一台新机器没有什么应用跑在上面,从r,b,w,id来看也是这样的。

下图,是在一台SuSE Linux(Linux version 2.6.5-7.276-smp),CPU是双核的vmstat情况:

要学会多用vmstat去检查系统健康_第2张图片

在Linux下面vmstat同solaris的vmstat有些不一样,比如没有w(swapped)这个列,但是从r(running),b(blocked),id(idle)

我们也可以看出这台机器是一个负荷偏重的机器,运行队列中的进程平均维持在2~3个,空闲时间也少于50%,实际上也的确如此,这台机器正跑着5台虚拟机。

你可能感兴趣的:(vmstat)