linux ssd hdd 缓存,Linux HDD和SSD磁盘的util(iostat )指标问题

HDD和SSD磁盘的util指标问题

LInux环境中,在排查磁盘问题时,我们经常使用到iostat工具,这确实是一款非常优秀的工具。但是最近遇到了这么一个问题-ssd做缓存盘,发现业务量稍微上去,utils使用率就高于90%,是不是意味着磁盘出现慢盘了呢?

比如以下两组数据:

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz

sdd 0.00 0.00 13823.00 0.00 55292.00 0.00 8.00

avgqu-sz await r_await w_await svctm %util

0.78 0.06 0.06 0.00 0.06 78.40

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz

sdd 0.00 0.00 72914.67 0.00 291658.67 0.00 8.00

avgqu-sz await r_await w_await svctm %util

15.27 0.21 0.21 0.00 0.01 100.00

读io 13k,util使用率78%

读io 73k,util使用率100%

这里理论计算读io 18k就会打满磁盘。其实这里牵扯一个问题,就是ssd固态磁盘是支持并发IO的,这里util只能代表磁盘的繁忙程度,无法反应磁盘的性能指标等问题。

查看iostat的官方文档:

%util

Percentage of elapsed time during which I/O requests were issued to the device (bandwidth utilization for the device). Device saturation occurs when this value is

close to 100% for devices serving requests serially. But for devices serving requests in parallel, such as RAID arrays and modern SSDs, this number does not

reflect their performance limits.

自测验证

在x86 上也试了一下, 通过读cache盘:

fio -name test -rw randread -filename /dev/sdr -runtime 60 -time_based=1 -direct=1 -ioengine libaio -numjobs=1 -iodepth=1 -eta-newline=1

read: IOPS=7872, BW=30.8MiB/s (32.2MB/s)(236MiB/7671msec)

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

sdr 0.00 9.00 7524.00 394.00 29.59 2.37 8.27 0.42 0.18 0.13 1.14 0.12 95.00

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

sdr 0.00 0.00 8305.00 82.00 32.66 0.96 8.21 0.01 0.12 0.11 0.26 0.12 99.80

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

sdr 0.00 0.00 8379.00 62.00 32.80 0.60 8.10 0.02 0.11 0.11 0.10 0.12 99.10

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

sdr 0.00 8.00 7720.00 195.00 30.53 1.67 8.33 0.15 0.14 0.12 0.86 0.12 98.10

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

sdr 0.00 4.00 8021.00 87.00 31.33 0.72 8.10 0.02 0.12 0.12 0.17 0.12 99.20

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

sdr 0.00 5.00 7502.00 374.00 29.31 1.89 8.11 0.31 0.16 0.13 0.92 0.12 96.00

可以看到iops 在7000 左右, utils 已经100%了

但是如果增加iodepth:

fio -name test -rw randread -filename /dev/sdr -runtime 60 -time_based=1 -direct=1 -ioengine libaio -numjobs=1 -iodepth=128 -eta-newline=1

read: IOPS=129k, BW=505MiB/s (530MB/s)(18.1GiB/36746msec)

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

sdr 0.00 22.00 125637.00 667.00 491.68 13.65 8.19 10.29 0.35 0.34 1.90 0.01 100.00

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

sdr 0.00 9.00 131418.00 136.00 513.60 1.39 8.02 1.59 0.24 0.24 0.52 0.01 100.00

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

sdr 0.00 0.00 131817.00 43.00 514.91 0.34 8.00 0.23 0.21 0.21 0.19 0.01 100.00

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

sdr 0.00 1.00 132226.00 81.00 517.15 1.23 8.02 0.67 0.23 0.23 0.63 0.01 100.00

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

sdr 0.00 0.00 130618.00 37.00 510.23 0.32 8.00 0.12 0.21 0.21 0.65 0.01 100.00

可以看到iops 12w , utils 也是100%。

也测试了下nvme 设备, 对应4k-1-1 , read 只有1w, 如果是 4k-1-128 read有 25w, 但他们的utils 都是100%。

NOTE: iostat 的utils 性能指标反应只针对 hdd 比较准确, 因为hdd 没有并发(串行的)。对SSD磁盘没意义

总结:

iostat的util使用率,代表着磁盘的繁忙程度。对于机械磁盘HDD,可以反应性能指标;对于SSD(支持并行IO),无法反应性能指标。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值