美文网首页
Linux的IO性能监控vmstat详解

Linux的IO性能监控vmstat详解

作者: 轻飘飘D | 来源:发表于2021-08-02 12:17 被阅读0次

    1.安裝 sysstat(系统监控工具)软件包 【vmstat,sar和iostat命令都包含在其中】

    yum -y install sysstat
    

    2.用法

    用法:  
    vmstat  [选项参数]
    或  
    vmstat  [选项参数]  [刷新延时] [刷新次数]
    选项参数:
    1) -d:         显示磁盘相关统计信息。
    2) -a:          显示活跃和非活跃内存
    3) -f:         显示从系统启动至今的fork数量。
    4) -p:          显示指定磁盘分区统计信息
    5) -s:          显示内存相关统计信息及多种系统活动数量。
    6) -m:          显示slabinfo
    7) -S 单位             令输出的数据显示单位,例如用 K/M 取代 bytes 的容量。
    8) -t                  顯示時間
    

    3.字段含义说明

    类别 项目 含 义
    Procs(进程) r 运行队列中进程数量
    Procs(进程) b 等待IO的进程数量
    Memory(内存) swpd 正在使用虚拟的内存大小,单位k
    Memory(内存) free 空闲内存大小
    Memory(内存) buff 已用的buff大小,对块设备的读写进行缓冲
    Memory(内存) cache 已用的cache大小,文件系统的cache
    Memory(内存) inact 非活跃内存大小,即被标明可回收的内存,区别于free和active
    Memory(内存) active 活跃的内存大小
    swap交换页面 si 每秒从交换区写入内存的大小(单位:kb/s)
    swap交换页面 so 每秒从内存写到交换区的大小
    io块设备 bi 每秒读取的块数(读磁盘
    io块设备 bo 每秒写入的块数(写磁盘)
    system系统 in 每秒中断数,包括时钟中断
    system系统 cs 每秒上下文切换数
    cpu中央处理器 us 用户进程执行消耗cpu时间(user time) %
    cpu中央处理器 sy 系统进程消耗cpu时间(system time)%
    cpu中央处理器 id 空闲时间(包括IO等待时间)%
    cpu中央处理器 wa 等待IO时间%
    cpu中央处理器 st 来自于虚拟机偷取的CPU所占的百分比
    进程信息字段:
    -r:等待运行的进程数,数量越大,系统越繁忙。
    -b:不可被唤醒的进程数量,数量越大,系统越繁忙
    
    CPU信息字段:
    -us:非内核进程消耗 CPU 运算时间的百分比。
    -sy:内核进程消耗 CPU 运算时间的百分比。
    -id:空闲 CPU 的百分比。
    -wa:等待 I/O 所消耗的 CPU 百分比。
    -st:被虚拟机所盗用的 CPU 百分比。
    cpu us: 持续大于50%,服务高峰期可以接受, 如果长期大于50 ,可以考虑优化
    cpu sy: 现实内核进程所占的百分比,这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。
    cpu wa: 列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的, 也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。
    cpu id:  CPU 空闲时所占百分比  平常持续小于50,服务高峰期可以接受。
    
    系统信息字段:
    -in:每秒被中断的进程次数。
    -cs:每秒进行的事件切换次数。
    这两个数越大,代表系统与接口设备的通信越繁忙。
    
    磁盘读/写信息字段:
    -bi:从块设备中读入的数据的总量,单位是块。
    -bo:写到块设备的数据的总量,单位是块。
    bi/bo: 磁盘写的数据量稍大,如果是大文件的写,10M以内基本不用担心,如果是小文件写2M以内基本正常
    这两个数越大,代表系统的 I/O 越繁忙。
    
    交换分区信息字段:
    -si:从磁盘中交换到内存中数据的数量,单位为 KB。
    -so:从内存中交换到磁盘中数据的数量,单位为 KB。
    这两个数越大,表明数据需要经常在磁盘和内存之间进行交换,系统性能越差
    
    swpd 虚拟内存已使用的大小,如果大于0,表示物理内存不足,
    但如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能
    

    4.vmstat -S M (這裡 -S M 表示單位改成 M)

    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     5  0   1541    531      0  20447    0    0    44   133    0    0 17  2 81  1  0
    

    r 表示运行队列(就是说多少个进程真的分配到CPU),当这个值超过了CPU数目,就会出现CPU瓶颈了。这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。

    5.显示活跃和非活跃内存 vmstat -a -S M

    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
     5  5   1541    602   9705  13542    0    0    44   133    0    0 17  2 81  1  0
    

    6.每2秒显示 1次(共3次) vmstat 2 3 -S M 【无3时,则实时监控】

    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     5  0   1541    617      0  20009    0    0    44   133    0    0 17  2 81  1  0
     2  0   1541    616      0  20010    0    0   120  8440  644 6097 21  1 77  1  0
     2  0   1541    622      0  20010    0    0   120  2492  562 4732 14  1 85  0  0
    

    相关文章

      网友评论

          本文标题:Linux的IO性能监控vmstat详解

          本文链接:https://www.haomeiwen.com/subject/zprcvltx.html