美文网首页
监控IO使用情况

监控IO使用情况

作者: 亮仔_c1b5 | 来源:发表于2019-10-15 00:02 被阅读0次

    监控IO使用情况

    • 监控目的
    • 监控指标
    • 监控命令
    • 监控实现

    一、磁盘说明

    磁盘在系统中负责存储和读取任务,磁盘的处理速度直接影响了计算机的速度,目前常用的磁盘有两种:固态和机械磁盘。

    固态磁盘:没有IO瓶颈,读写快,存储颗粒有擦写限制,价格高,容量小

    机械磁盘:靠电机带动磁盘转动,通过磁头读取或存储数据,读写速度和磁盘转速有关,容量大、价格低,大量读写容易造成IO瓶颈

    二、监控目的

    随时掌握IO的使用情况,防止IO性能瓶颈

    三、监控指标

    • IO队列长度
    • IOPS
    • 磁盘吞吐量

    四、监控命令

    iostat(sysstat包提供),本节重点讲解

    iozone(三方提供)

    iostat命令详解

    iostat语法

    用法:iostat [ 选项 ] [ <时间间隔> [ <次数> ]]

    常用选项说明:

    -c:只显示系统CPU统计信息,即单独输出avg-cpu结果,不包括device结果

    -d:单独输出Device结果,不包括cpu结果

    -k/-m:输出结果以kB/mB为单位,而不是以扇区数为单位

    -x:输出更详细的io设备统计信息

    interval/count:每次输出间隔时间,count表示输出次数,不带count表示循环输出

    image

    iostat,结果为从系统开机到当前执行时刻的统计信息

    输出含义:

    avg-cpu: 总体cpu使用情况统计信息,对于多核cpu,这里为所有cpu的平均值。重点关注iowait值,表示CPU用于等待io请求的完成时间。

    %user:CPU处在用户模式下的时间百分比。

    %nice:CPU处在带NICE值的用户模式下的时间百分比。

    %system:CPU处在系统模式下的时间百分比。

    %iowait:CPU等待输入输出完成时间的百分比。

    %steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。

    %idle:CPU空闲时间百分比。

    Device: 各磁盘设备的IO统计信息。各列含义如下:

    Device: 以sdX形式显示的设备名称

    tps: 每秒进程下发的IO读、写请求数量

    KB_read/s: 每秒从驱动器读入的数据量,单位为K。

    KB_wrtn/s: 每秒从驱动器写入的数据量,单位为K。

    KB_read: 读入数据总量,单位为K。

    KB_wrtn: 写入数据总量,单位为K。

    image

    以上各列的含义如下:

    rrqm/s: 每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并

    wrqm/s: 每秒对该设备的写请求被合并次数

    r/s: 每秒完成的读次数

    w/s: 每秒完成的写次数

    rkB/s: 每秒读数据量(kB为单位)

    wkB/s: 每秒写数据量(kB为单位)

    avgrq-sz:平均每次IO操作的数据量(扇区数为单位)

    avgqu-sz: 平均等待处理的IO请求队列长度

    await: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)

    svctm: 平均每次IO请求的处理时间(毫秒为单位)

    %util: 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率

    重点关注参数
    1、iowait% 表示CPU等待IO时间占整个CPU周期的百分比,如果iowait值超过50%,或者明显大于%system、%user以及%idle,表示IO可能存在问题。
    2、avgqu-sz 表示磁盘IO队列长度,即IO等待个数。
    3、await 表示每次IO请求等待时间,包括等待时间和处理时间
    4、svctm 表示每次IO请求处理的时间
    5、%util 表示磁盘忙碌情况,一般该值超过80%表示该磁盘可能处于繁忙状态。
    如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。如果 svctm 比较接近 await,
    说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。如果avgqu-sz比较大,
    也表示有当量io在等待。
    
    dm-0、dm-1、dm-2的主设备号是253(是linux内核留给本地使用的设备号),次设备号分别是0、1、2,这类设备在/dev/mapper中
    
    

    五、监控实现

    #!/bin/bash
    #Description: 
    #Author: Bai Shuming
    #Created Time: 2019/05/27 21:05
    
    #磁盘io监控 明确知晓HD的使用情况
    #监控指标 IO队列长度  IOPS   吞吐量
    #          iostat         iozone
    
    #iostat 队列长度   明确反馈IO是否忙
    #iostat  由sysstat
    
    #iostat 命令
    
    io() {
      device_num=`iostat -x |egrep "^sd[a-z]"|wc -l`
      iostat -x 1 3|egrep "^sd[a-z]"|tail -n +$((device_num+1))|awk '{io_long[$1]+=$9}END{for (i in io_long)print io_long[i],i}'
    
    }
    
    #阈值如何判断    2-3 
    
    #while true
    #do
       io
    #   sleep 5
    #done
    

    相关文章

      网友评论

          本文标题:监控IO使用情况

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