Linux命令之vmstat

一、简介:

vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,大部分的Linux的发行版都默认安装此命令的工具(如果没有安装的话:yum -y install procps ),利用vmstat可对操作系统的虚拟内存、进程、CPU活动进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。

二、命令用法与参数说明

命令的语法格式
vmstat [-V] [-n] [delay [count]]
各个选项及参数的含义:

-V         打印出版本信息
-n         表示在周期性的循环输出时,输出的头部信息仅显示一次
-a         显示活跃和非活跃内存
-d         显示磁盘相关统计信息
-D        以表格形式显示磁盘信息
-p         显示指定磁盘分区统计信息
-s         显示内存相关统计信息及多种系统活动数量
-m        显示slabinfo
-t          给输出添加时间戳
-S         使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)
delay    刷新时间间隔。如果不指定,只显示一条结果
count    刷新次数,如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷大。

三、输出的字段解释:

shell> vmstat 2 5
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 506808  19024  31028    0    0     8   102   85  175  0  0 97  2  0	
 0  0      0 506792  19056  31020    0    0     0   190   62  147  0  1 98  1  0	
 0  0      0 506792  19088  31020    0    0     0    96   53  118  0  0 94  6  0	
 0  0      0 506792  19112  31004    0    0     0   102   46  108  0  0 75 25  0	
 0  0      0 506800  19112  31028    0    0     0     0   33   80  0  1 100  0  0
  • procsr   表示运行和等待cpu时间片的进程数,这个值如果长期大于系统CPU的个数,说明CPU不足,需要增加CPUb  表示在等待资源的进程数,比如正在等待I/O、或者内存交换等
  • memory
    swpd     表示切换到内存交换区的内存数量(以k为单位)。如果swpd的值不为0,或者比较大,只要si、so的值长期为0,这种情况下一般不用担心,不会影响系统性能。
    free       表示当前空闲的物理内存数量(以k为单位)
    buff       表示buffers cache的内存数量,一般对块设备的读写才需要缓冲
    cache   表示page cached的内存数量,一般作为文件系统cached,频繁访问的文件都会被cached,如果cache值较大,说明cached的文件数较多,如果此时IO中bi比较小,说明文件系统效率比较好
  • swap
    si    表示由磁盘调入内存,也就是内存进入内存交换区的数量
    so   表示由内存调入磁盘,也就是内存交换区进入内存的数量
    一般情况下,si、so的值都为0,如果si、so的值长期不为0,则表示系统内存不足。需要增加系统内存
  • io   显示磁盘读写状况
    bi    表示从块设备读入数据的总量(即读磁盘)(kb/s)
    bo   表示写入到块设备的数据总量(即写磁盘)(kb/s)
    这里我们设置的bi+bo参考值为1000,如果超过1000,而且wa值较大,则表示系统磁盘IO有问题,应该考虑提高磁盘的读写性能
  • system    显示采集间隔内发生的中断数
    in    表示在某一时间间隔中观测到的每秒设备中断数
    cs   表示每秒产生的上下文切换次数
    上面这2个值越大,由内核消耗的CPU时间会越多
  • CPU   显示了CPU的使用状态,此列是我们关注的重点
    us    显示了用户进程消耗的CPU 时间百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,就需要考虑优化程序或算法
    sy    显示了内核进程消耗的CPU时间百分比。Sy的值较高时,说明内核消耗的CPU资源很多
    根据经验,us+sy的参考值为80%,如果us+sy大于 80%说明可能存在CPU资源不足
    id    显示了CPU处在空闲状态的时间百分比
    wa  显示了IO等待所占用的CPU时间百分比。wa值越高,说明IO等待越严重,根据经验,wa的参考值为20%,如果wa超过20%,说明IO等待严重,引起IO等待的原因可能是磁盘大量随机读写造成的,也可能是磁盘或者磁盘控制器的带宽瓶颈造成的(主要是块操作)

 

综上所述,在对CPU的评估中,需要重点注意procs项中r列的值和CPU项中的us 、sy 和 id 列的值。

 

暂无评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Time limit is exhausted. Please reload CAPTCHA.