您的位置:首页 > 运维架构 > Linux

linux vmstat命令详解

2016-02-15 14:54 585 查看
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。 相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率

一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数,如:

[root@rac01test ~]# 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 8 254476 248344 4980016 0 0 80 35 3 2 1 0 96 3 0

0 1 8 254476 248344 4980028 0 0 51 18 3991 6756 1 0 97 2 0

1表示每个1秒采集一次服务器状态,2表示只采集2次。

实际上,在应用过程中,我们会在一段时间内一直监控,不想监控直接结束vmstat就行了,例如:

[root@rac01test ~]# vmstat 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 8 262568 248344 4981444 0 0 80 35 3 2 1 0 96 3 0

0 1 8 262668 248344 4981476 0 0 59 155 3824 6632 1 0 96 3 0

0 1 8 262660 248344 4981480 0 0 67 52 3852 6691 1 0 97 2 0

1 1 8 262652 248344 4981480 0 0 35 21 4238 7159 2 1 96 2 0

这表示vmstat每2秒采集数据,一直采集,直到我结束程序

参数介绍:

r :表示运行队列,表示运行和等待cpu时间片的进程数,当这个值长期超过了CPU数目,就会出现CPU瓶颈了

b :列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。

swpd :虚拟内存已使用的大小(KB),如果swpd的值不为0,或者比较大,比如超过了100m,只要si、so的值长期为0,系统性能还是正常

free :当前的空闲页面列表中内存数量(KB)。

buff : Linux/Unix作为buffer cache的内存数量(KB),一般对块设备的读写才需要缓冲。

cache: cache直接用来记忆我们打开的文件,给文件做缓冲,我本机大概占用5G;

这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。

si :每秒从交换区写到内存的大小(KB),由磁盘调入内存

so :每秒写入交换区的内存大小(KB),由内存调入磁盘

bi :从块设备读入数据的总量(读磁盘)(块/秒)。

bo :块设备写入数据的总量(写磁盘)(块/秒)

in :每秒CPU的中断次数,包括时间中断

us :列显示了用户方式下所花费 CPU 时间的百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序。

sy :列显示了内核进程所花费的cpu时间的百分比。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。

id :id 列显示了cpu处在空闲状态的时间百分比,linux 通常50%正常,不能低于30%

wa :列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: