Linux监控工具介绍系列——vmstat

 

说来惭愧,玩Linux这么久了,居然没有玩转vmstat这个命令,对很多指标的具体意义都有点模糊不清,花了点时间好好学习、整理一下这个命令的相关资料。因为这个命令确实比较重要,而且频繁用到。

 

 

命令简介:

 

 

 vmstatVirtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、IO读写、CPU活动等进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。

 

     指令所在路径:/usr/bin/vmstat

 

 

     注意事项: 本文实验、总结环境为RHEL 5.7,vmstat在不同版本的Unix与Linux有所差别,使用时,最好先参考对应操作系统的vmstat版本。

 

    

     命令手册中的介绍如下:

 

 

     DESCRIPTION

 

    vmstat  reports  information about processes, memory, paging, block IO,

 

       traps, and cpu activity.

 

 

 

       The first report produced gives averages since the last reboot.   Addi-

 

       tional  reports  give information on a sampling period of length delay.

 

       The process and memory reports are instantaneous in either case.

 

 

命令语法:

 

 

       vmstat [-s] [-n] [-S unit]

       vmstat [-m] [-n] [delay [ count]]

       vmstat [-d] [-n] [delay [ count]]

       vmstat [-p disk partition] [-n] [delay [ count]]

       vmstat [-f]

       vmstat [-V]

 

 

命令参数:

 

 

    此命令参数是Red Hat Enterprise Linux Server release 5.7下vmstat命令参数,不同版本Linux的cp命令参数有可能不同。不过默认应该都是[ delay [ count ] ] ,delay是间隔,count显示多少次信息。可以和上面的某些参数结合使用。

 

 

 

输出字段意义:

 

 

Procs

       r: The number of processes waiting for run time.

 

       等待运行的进程数。如果等待运行的进程数越多,意味着CPU非常繁忙。另外,如果该参数长期大于和等于逻辑cpu个数,则CPU资源可能存在较大的瓶颈。

       b: The number of processes in uninterruptible sleep.

 

 

       处在非中断睡眠状态的进程数。意味着进程被阻塞。主要是指被资源阻塞的进程对列数(比如IO资源、页面调度等),当这个值较大时,需要根据应用程序来进行分析,比如数据库产品,中间件应用等

 

 

Memory

       swpd: the amount of virtual memory used.

 

       已使用的虚拟内存大小。如果虚拟内存使用较多,可能系统的物理内存比较吃紧,需要采取合适的方式来减少物理内存的使用。swapd不为0,并不意味物理内存吃紧,如果swapd没变化,siso的值长期为0,这也是没有问题的

      

       free: the amount of idle memory.

 

       空闲的物理内存的大小

 

       用来做buffer(缓存,主要用于块设备缓存)的内存数,单位:KB

       cache: the amount of memory used as cache.

 

       用来做cache(缓存,主要用于缓存文件)的内存,单位:KB

       inact: the amount of inactive memory. (-a option)

 

       inactive memory的总量

       active: the amount of active memory. (-a option)

 

 

       active memroy的总量。

 

 

Swap

       si: Amount of memory swapped in from disk (/s).

 

        从磁盘交换到内存的交换页数量,单位:KB/秒。

 

       so: Amount of memory swapped to disk (/s).

        从内存交换到磁盘的交换页数量,单位:KB/

 

        内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IOCPU资源都会被消耗。

   当看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,这个是不正确的。不能光看这一点,还要结合siso

    如果free很少,但是siso也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。

 

       当内存的需求大于RAM的数量,服务器启动了虚拟内存机制,通过虚拟内存,可以将RAM段移到SWAP DISK的特殊磁盘段上,

   这样会 出现虚拟内存的页导出和页导入现象,页导出并不能说明RAM瓶颈,虚拟内存系统经常会对内存段进行页导出,

   但页导入操作就表明了服务器需要更多的内存了, 页导入需要从SWAP DISK上将内存段复制回RAM,导致服务器速度变慢。

 

       bi: Blocks received from a block device (blocks/s).

 

        每秒从块设备接收到的块数,单位:块/秒 也就是读块设备。

 

       bo: Blocks sent to a block device (blocks/s).

 

        每秒发送到块设备的块数,单位:块/  也就是写块设备。

 

System

       in: The number of interrupts per second, including the clock.

 

        每秒的中断数,包括时钟中断

 

       cs: The number of context switches per second. 

        每秒的环境(上下文)切换次数。比如我们调用系统函数,就要进行上下文切换,而过多的上下文切换会浪费较多的cpu资源,这个数值应该越小越好。

 

CPU

       These are percentages of total CPU time.

 

       us: Time spent running non-kernel code. (user time, including nice time)

 

        用户CPU时间(非内核进程占用时间)(单位为百分比)。 us的值比较高时,说明用户进程消耗的CPU时间多

 

       sy: Time spent running kernel code. (system time)

 

         系统使用的CPU时间(单位为百分比)。sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。

 

       id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.

 

        空闲的CPU的时间(百分比),在Linux 2.5.41之前,这部分包含IO等待时间。

 

       wa: Time spent waiting for IO. Prior to Linux 2.5.41, shown as zero.

 

        等待IOCPU时间,在Linux 2.5.41之前,这个值为0 .这个指标意味着CPU在等待硬盘读写操作的时间,用百分比表示。wait越大则机器io性能就越差。说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。

 

    st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.

 

 

使用示例:

 

 

1: 查看vmstat命令的帮助信息

 

 

[root@DB-Server ~]# man vmstat

 

 

 

2: 显示活动(active)与非活动(inactive)的内存

 

 

 

3:不加任何参数,vmstat命令只输出一条记录,这个数据是自系统上次重启之后到现在的平均数值。

 

 

4:显示各种事件计数器表和内存统计信息,这显示不重复。

 

 

5:可以扩大字段长度,当内存较大时,默认长度不够完全展示内存时,会导致字段值便宜,导致查看不便

 

 

 

如下所示,由于有些字段值较大,导致出现下面偏移,不便查看。

 

 

 

6:显示磁盘分区数据(disk partition statistics

 

 

 

参考资料:

http://www.linuxcommand.org/man_pages/vmstat8.html

http://www.ha97.com/4512.html

 

 

原文链接:https://www.cnblogs.com/kerrycode/p/6208257.html

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/33603

(0)
上一篇 4天前
下一篇 4天前

相关推荐

发表回复

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

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml