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从虚拟机偷取的时间百分比 举例 CPU密集型 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密集型 在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 交换型(SWAP占用) 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 (责任编辑:IT) |