zoukankan      html  css  js  c++  java
  • io利用率100%问题

    iostat -mx 1 dm-60 dm-61 dm-62 dm-63 dm-64 dm-65 dm-66 dm-67

    Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util

    dm-60 6.00 0.00 235.00 0.00 118.03 0.00 1028.63 0.40 1.69 1.69 0.00 0.74 17.45
    dm-61 0.00 0.00 231.50 0.00 112.55 0.00 995.71 0.38 1.63 1.63 0.00 0.70 16.30
    dm-62 0.00 0.00 1349.00 0.00 662.08 0.00 1005.14 122.07 92.08 92.08 0.00 0.59 79.10
    dm-63 0.50 0.00 1143.00 0.00 560.10 0.00 1003.57 357.50 271.83 271.83 0.00 0.87 100.00
    dm-64 0.00 0.00 1268.00 0.00 623.26 0.00 1006.66 151.34 115.45 115.45 0.00 0.62 79.10
    dm-65 0.00 0.00 1288.00 0.00 633.29 0.00 1006.98 156.79 121.89 121.89 0.00 0.63 81.10
    dm-66 0.00 0.00 230.50 0.00 112.05 0.00 995.54 0.38 1.66 1.66 0.00 0.71 16.35
    dm-67 0.00 0.00 241.50 0.00 117.05 0.00 992.65 0.39 1.61 1.61 0.00 0.70 17.00

    svctm  值很小,有一块盘的io利用率达到了100%。

    查看iostat的manpage,

    svctm
    The average service time (in milliseconds) for I/O requests that were issued to the device. Warning! Do not trust this field any more. This field will be removed in a future
    sysstat version.

    发现该指标已经不具备参考性了,怎么判断我这块100%利用率的硬盘,耗时情况怎么样呢,写了个脚本如下:

    #!/bin/bash
    
    blktrace -d /dev/$1 -o hh -w 20
    blkparse -i hh -d $1.blktrace.bin
    btt -i $1.blktrace.bin -o /dev/shm/$1-caq
    

      

    一个I/O请求进入block layer之后,可能会经历下面的过程:

    • Remap: 可能被DM(Device Mapper)或MD(Multiple Device, Software RAID) remap到其它设备
    • Split: 可能会因为I/O请求与扇区边界未对齐、或者size太大而被分拆(split)成多个物理I/O
    • Merge: 可能会因为与其它I/O请求的物理位置相邻而合并(merge)成一个I/O
    • 被IO Scheduler依照调度策略发送给driver
    • 被driver提交给硬件,经过HBA、电缆(光纤、网线等)、交换机(SAN或网络)、最后到达存储设备,设备完成IO请求之后再把结果发回。

    采样了20s,看到底哪里比较忙。取数据如下:

    [root@localhost bak]# vi dm-63-caq
    
    ==================== All Devices ====================
    
    ALL MIN AVG MAX N
    --------------- ------------- ------------- ------------- -----------
    Q2Qdm 0.000000025 0.001386351 0.204286857 3553
    Q2Cdm 0.001132298 0.104383169 0.264029949 3554
    
    Q2G 0.000000261 0.000003114 0.001671993 3425
    G2I 0.000000437 0.000053202 0.003102351 3411
    Q2M 0.000000726 0.000001618 0.000004214 129
    I2D 0.000000443 0.000224963 0.014763260 3425
    M2D 0.000000720 0.000284257 0.008655580 115
    D2C 0.001126306 0.104102819 0.254061182 3554
    

      

    可以看到D2C这一行,已经达到了平均104ms的单个io消耗,而这个是可以衡量硬件指标的。

    由于dm-63是一块sas的ssd设备,正常情况下的1143次/s的读,还不应该达到瓶颈,考虑到空间占用也没有达到60%以上,不应该性能这么差。硬件指标偏低,更换硬盘后解决。

    水平有限,如果有错误,请帮忙提醒我。如果您觉得本文对您有帮助,可以点击下面的 推荐 支持一下我。版权所有,需要转发请带上本文源地址,博客一直在更新,欢迎 关注 。
  • 相关阅读:
    【转贴】龙芯生态产品和解决方案巡展(第四篇)——存储
    【转贴】龙芯生态产品和解决方案巡展(第五篇)——云终端
    【转贴】龙芯生态产品和解决方案巡展(第六篇) ——操作系统
    【转贴】龙芯生态产品和解决方案巡展(一)
    【转贴】龙芯生态产品和解决方案巡展(第二篇)——笔记本电脑
    【转贴】龙芯生态产品和解决方案巡展(第三篇)——服务器
    【转贴】我们的龙芯3号---致龙芯15周年
    【转贴】GS464/GS464E
    【转贴】Windows virtio 驱动
    【转贴】Windows常用命令实例
  • 原文地址:https://www.cnblogs.com/10087622blog/p/7301242.html
Copyright © 2011-2022 走看看