的使用方法语法vmstat命令的执行不需要特殊权限,普通用户即可执行。语法如下:vmstat[options][delay[count]]delay表示数据更新的时间间隔,单位是秒。如果不指定这个值,表示从系统启动到现在的平均时间,此时只输出一次结果。Count表示输出的数量。如果不指定该值,但指定了delay的值,则表示无限次。结果字段说明在命令行输入vmstat回车,结果输出一次[root@cghost22~]#vmstatprocs----------memory--------------swap-------io-----system--------cpu-----rbswpdfreebuffcachesisobiboincsussyidwast3009913249325373360000340010000[root@cghost22~]#结果中有很多字段,下表列出了每个字段的详细描述字段描述r可运行进程数,包括运行状态和就绪状态bin处于不间断睡眠状态的进程数swpd虚拟内存使用freefreememorybuff用作缓冲区缓存的内存量用作缓存的内存量si从磁盘换入的内存量so换出的内存量bi从块设备接收到的块,单位:块/sbo发送到块设备的块,单位:块/sin每秒中断次数,包括时钟中断cs每秒上下文切换次数us用户态执行时间sy内核态执行时间idCPU空闲时间wa等待IO时间st时间表第二行从虚拟机盗取的处于不可中断睡眠状态的进程数,其中不可中断是指进程进入的状态当执行某些系统调用时,在这种状态下,进程被阻塞,不能被中断,直到系统调用完成。该字段的结果按照颜色分为几个部分,从上到下依次为:进程信息、内存信息、IO信息、系统中断和上下文,CPU时间和内存信息中的取值单位为KB(1024kbytes))默认情况下。CPU时间字段表示的不是具体时间,而是占总CPU时间的百分比。常用选项选项说明-a显示active和inactivejumpmemory-f自系统启动以来的fork次数,包括fork、vfork、clone等系统调用-s显示系统事件计数和内存统计信息-d报告磁盘统计信息-D统计活动磁盘信息-p指定分区详细信息-t追加一列时间显示-S以指定字节为单位显示-w结果以宽模式显示-vvmstat版本常用vmstat命令主要用于识别系统的瓶颈。统计数据时,会根据指定的时间间隔和次数输出不包括自己的进程[root@cghost22~]$vmstat210procs----------memory-------------swap-------io-----system--------cpu-----rbswpdfreebuffcachesisobiboincsussyidwast2012552148356234324338295600121442297001012552148264234324338298000000000001497427478000125521483762343323383052000204141972681242940000125521488122343323383088000414398271553295000012552147892234332338312800021015515288023295001255214838333338383156015147280423332950000000012552148243432338316800000414380273953196000000125521482642343216000019914430270083195020552每2秒输出一次结果,10表示共输出10次,10次后程序自动结束并修改输出结果中的内存显示单位,内存数据的单位默认为KB,并且可以通过-S选项调整显示单位。有以下单位可供选择。注意:-S选项对si、so字段无效k#1000bytesK#1024bytesm#1000*1000bytesM#1024*1024bytes上图中第一个结果中的内存数据显示单位为KB,第二个结果中的单位是MB。将第一个结果对应字段的值除以1024得到第二个结果activememory和inactivememoryinact为非活动内存,active为活动内存activememory为进程使用的内存,inactivememory为进程的内存是系统启动后没有运行的这里的fork数包括fork、vfork、clone等系统调用[root@cghost22~]#vmstat-f12714forks[root@cghost22~]#vmstat-f12715forks[root@cghost22~]#vmstat-f12716forks每次我们在控制台执行一条命令,系统都会fork一个新的进程来执行这条命令。比如像上面的例子,我们每次执行vmstat-f命令,系统都会fork一个新的进程。该选项还可用于计算某个操作消耗的fork调用次数。运行前后只需要执行一次vmstat-f命令,比较两次结果的差异。添加一列时间添加一列时间显示有助于比较一段时间内的结果。以wide模式显示,vmstat结果中有些字段的数字有时比较长,而且与字段名的位置有偏差,不适合人眼观看作为习惯,-w选项可以显示数据在宽模式下,使结果看起来更直观。下图是不使用widemode和使用widemode统计磁盘信息的对比。磁盘信息主要分为三个方面:Read,write,IO,readandwriteinmilliseconds,IOinsecondsreadtotal:成功读取的总数merged:groupread(产生一个IO)sectors:成功读取的扇区数ms:readmillisecondsspentwritingtotal:成功写入的总数merged:groupwrites(生成IO)sectors:成功写入的扇区数ms:写入IO花费的毫秒数cur:正在进行的IOs:IO花费的秒数Specifydiskpartitioninformation在上图中,输出结果显示了sda3分区设备的信息,包括:读次数、读扇区数、写次数、分区写请求总数。
