vmstat是一个查看虚拟显存使用状况的工具,它可以看见服务器使用率,显存使用,虚拟显存交换情况,IO读写.相比top,可以看见整个机器的CPU,memory,IO的使用情况,而不是单单听到各个进程各值的使用率.
默认情况下,vmstat命令并没有安装,须要安装sysstat包,该包里富含vmstat程序.
通常常常使用的该命令后加2个数字参数,第一个参数是取样的时间间隔(秒),第二个参数是取样的次数.
基本参数:
vmstat[-a][-n][-t][-Sunit][delay[count]]
[-a]:显示活跃和非活跃显存
[-n]:只在开始时显示一次数组名linux已使用内存查看,针对多次搜集信息的情况输出人性化一点
[-t]:在每条信息的末尾,显示搜集信息的时间
[-Sunit]:使用指定单位显示。参数有k、K、m、M,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024bytes)
[delay[count]]:delay是信息搜集间隔,count是信息搜集的次数
vmstat[-s][-n][-Sunit]
[-s]:显示显存相关的统计信息
vmstat[-m][-n][delay[count]]
[-m]:显示slabinfo,slabinfo信息记录在/proc/slabinfo文件中。slab是linux的一个显存分配机制。
vmstat[-d][-n][delay[count]]
[-d]:显示相关c盘的统计信息
注:这个跟楼下-p的区别统计信息的不同、统计对象这个是c盘-p是子分区、这个不能指定全部输出
vmstat[-pdiskpartition][-n][delay[count]]
[-pdiskpartition]:显示c盘子分区的统计信息,这儿没有iostat的信息这么有用
vmstat[-f]
[-f]:开机启动至今的fork数目注:这儿的fork应当是内核的fork()函数,在父进程中,fork返回新创建子进程的进程ID
vmstat[-V]
[-V]:版本信息
示例
代码如下:
root@192.168.22.54:~#vmstat210
procs-----------memory-------------swap-------io------system-------cpu-----
rbswpdfreebuffcachesisobiboincsussyidwast
13005426043235121235605200020017186500
4200552500323512123561120000186694990342451400
7200563416323512123561320000183944989541431600
7300570924323512123561640000196665167837412200
130058120832351212356204000280189904954143431500
18005871483235121235622800032193604920337392400
2700520016323512123562920000204235286539402100
1800527512323512123563360000196135305242431600
2300538608323512123563760000188605064541421800
8000548608323512123564440000197815091741421700
按照以上实例,下边是数组说明:
Procs(进程)
r:表示运行队列的进程数目,换句话说就是多少个进程真正分配到cpu.服务器配置cpu为8核,这儿因为服务器运行了大量的程序在跑,当这个值超过了cpu数量,且id较小,就可能会出现cpu困局.运行队列过大,表示cpu很忙碌,通常会导致cpu使用率偏低.
b:等待io的进程数.
Memory
swpd:虚拟显存使用情况,单位KB
free:空闲的显存
buff:用作缓冲的显存大小,显存中的一部份,某程序代码缓存,不可移到swap里去.
cache:用作缓存的显存大小,数据缓存,准许交给swap
Swap
si:从c盘交换到显存的交换页数目,每秒从c盘读入虚拟显存的大小,倘若这个值小于0,表示数学显存不够用或则显存窃取.
so:从显存交换到c盘的交换页数目,每秒虚拟显存写入c盘的大小,倘若这个值小于0,表示数学显存不够用或则显存窃取.
bi:Blocksreceivedfromablockdevice(blocks/s).每秒从块设备接收到的块数中标linuxlinux端口映射,即读块设备。
bo:Blockssenttoablockdevice(blocks/s).每秒发送到块设备的块数linux已使用内存查看,即写块设备。
System
in:每秒中断数,包括时钟中断.
cs:每秒上下文切换数.这个值越小越好.例如每次调用系统函数,线程的切换,代码都会步入内核空间,造成上下文切换,次数过多表示cpu大部份浪费在上下文切换,造成cpu没有充分借助.
CPU(以比率表示)
us:用户进程执行的时间,用户cpu使用率,操作运算等.
sy:系统进程执行的时间,系统cpu使用率,读取硬碟,操作硬件等.
id:空闲时间(包括IO等待时间)
wa:等待IO时间