DBA
分类: LINUX
2013-02-21 19:18:00
原文地址:监控入门-vmstat命令 作者:ning_lianjie
vmstat命令是一个通用的报表工具,提供有关进程,内存,分页系统,I/O块和CPU活动的信息.判断系统问题的第一步,可以使用vmstat命令.
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
参数解释:
1. procs-进程的数量
a) r表示那些等待运行进程的数量
b) b表示那些处于不间断状态的进程
2. memory-内存
a) swpd使用虚拟内存(swap)的总量
b) free空闲的内存总量
c) buff用作缓冲的内存总量
d) cache用作缓存的内存总量
e) inact不活跃的内存总量 (-a option)
f) active活跃的内存总量 (-a option)
3. swap-交换空间
a) si交换出内存总量
b) so交换入内存总量
4. io-块IO
a) bi从一个块设备接收(blocks/s)
b) bo发送到块设备(blocks/s)
5. system
a) in每秒的中断数
b) cs每秒的上下文切换数
6. cpu
这些数据是占用全部CPU时间的百分比.(这5个值相加等于100%)
a) us用户空间上进程运行的时间百分比
b) sy内核空间上进程运行的时间百分比
c) id闲置时间百分比
d) wa等待IO的时间百分比
e) st从虚拟机偷取的时间百分比
us列的值通常较高,它显示了非内核代码执行的时间百分比.
大多数情况下,都有一些进程排队,等待CPU的时间(r列)
cs列的上下文切换也比较多.上下文切换发生在操作系统停止一个进程,然后启动另外一个进程的时候.
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
27 0 12604 134592 362888 14815092 0 0 20630 4250 17218 22047 83 1 15 0 0
在IO密集型负载中,CPU花费大量的时间等待I/O请求完成.这意味着vmstat将会显示大量的进程处于不可中断的休眠中(b列),并且wa列的值会比较高.
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
13 8 12614 137552 266248 15032020 0 0 19808 480 15414 17925 21 1 50 28 0
si列和so列的值会比较高.
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
13 8 1260400 137552 266248 15032020 19853 9781 19808 480 15414 17925 21 1 20 58 0
没有不可运行(r列)或被阻塞(b列)的进程,并且id列的值较高.显示了CPU处于空闲的时间百分比.
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 0 655104 163952 605092 0 0 5 6 61 215 1 0 99 0 0