vmstat :是virtual memory statistics(虚拟内存统计)的缩写,很多linux版本默认安装此命令工具。该命令可以对操作系统的内存信息,进程状态,cpu活动进行查看,不足之处是无法对某个进程进行深入分析。
vmstat
-V :查看版本信息
[root@zhu3 ~]# vmstat -V procps version 3.2.7
delay :表示两次输出之间的时间间隔
count :按照delay时间间隔统计的次数
vmstat 2 :表示两秒钟更新一次输出信息,ctrl+c 停止输出
[root@zhu3 ~]# 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 0 154704 89492 131536 0 0 3 8 113 62 0 0 99 0 0 0 0 0 154704 89492 131536 0 0 0 0 1005 84 0 0 100 0 0 1 0 0 154704 89492 131536 0 0 0 0 1005 84 0 0 100 0 0
vmstat 1 4 :1秒更新一次输出信息,4次后停止输出
[root@zhu3 ~]# vmstat 1 4 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 154704 89504 131536 0 0 3 8 113 62 0 0 99 0 0 0 0 0 154704 89504 131536 0 0 0 0 1003 95 0 0 100 0 0 0 0 0 154704 89512 131528 0 0 0 300 1027 176 0 2 96 1 0 0 0 0 154704 89512 131536 0 0 0 64 1019 122 0 0 100 0 0 [root@zhu3 ~]#
对输出的内容分析
proces :
r列表示运行和等待cpu时间片的进程数,这个值如果长期大于系统cpu的个数说明cpu不足,
需增加cpu
b列表示在等待支援的进程数,比如正在等待I/o或者内存交换等
memory:
swpd:虚拟内存的使用情况,单位为kb
free:空闲内存,单位为kb
buff:表示buffers cache的内存数,一般对块设备的读写才需要缓冲
cache:表示page changed的内存数量,一般作为文件系统进行缓冲
swap:
si:表示由磁盘调入内存,也就是由内存进入内存交换分区的内存大小
so:由内存调入磁盘,也就是由内存交换区进入内存的内存大小
一般情况下si,so的值都为0,如果二者长期不为0,表示系统内存不足,需要添加系统内存
io:
bi:表示从块设备读入数据的总量
bo:表示写到块设备的数据总量
system :
in:表示在一段时间间隔内观测到的每秒设备中断数
cs:每秒产生的上下文切换次数‘
cpu :
us:用户进程消耗的cpu时间百分比,us的值比较高时说明用户进程消耗的cpu时间多,如
果长期大于50%,需要优化
sy:内核进程消耗的cpu时间百分比
若us+sy大于80%说明cpu资源不足
id:cpu处于空闲状态段时间百分比
wa:i/o等待所占用的cpu时间百分比
标准情况下:
r<5 b=0