什么时候 iowait 被认为是高的?
iostat -x
avg-cpu: %user %nice %system %iowait %steal %idle
2,89 0,01 5,45 49,83 0,00 41,83
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
fd0 0,00 0,00 0,00 0,00 0,00 0,00 8,00 0,00 40,00 40,00 0,00
sda 0,18 0,86 2,82 0,60 181,20 21,92 59,35 0,03 10,22 5,02 1,72
sdb 3,96 39,67 6,27 20,94 2243,04 564,37 103,16 0,24 8,83 6,57 17,89
sdc 69,17 0,02 77,40 21,92 37365,20 1578,42 392,10 1,53 15,44 7,46 74,14
sdd 0,64 0,01 1,60 0,09 402,20 87,67 289,93 0,14 80,82 10,63 1,80
dm-0 0,00 0,00 0,85 0,14 28,07 1,09 29,54 0,01 8,18 2,27 0,22
dm-1 0,00 0,00 0,00 0,00 0,02 0,03 8,00 0,00 15,00 2,78 0,00
dm-2 0,00 0,00 2,24 0,10 402,20 87,67 209,87 0,15 65,29 7,69 1,80
dm-3 0,00 0,00 155,10 80,57 39493,87 2121,22 176,58 3,07 13,02 3,33 78,39
dm-4 0,00 0,00 0,34 0,06 34,97 0,47 89,11 0,01 25,57 10,23 0,41
dm-5 0,00 0,00 0,95 1,49 59,89 16,74 31,36 0,03 14,02 1,97 0,48
dm-6 0,00 0,00 0,42 0,43 19,50 4,36 28,10 0,01 16,69 5,00 0,42
dm-7 0,00 0,00 0,96 0,27 28,18 2,20 24,61 0,02 19,65 4,89 0,60
dm-8 0,00 0,00 0,83 0,71 66,32 10,89 50,17 0,02 16,16 4,50 0,69
dm-9 0,00 0,00 0,21 0,29 48,34 7,13 112,85 0,01 20,98 5,36 0,26
dm-10 0,00 0,00 0,06 0,01 2,08 0,12 29,66 0,00 16,39 7,85 0,06
dm-11 0,00 0,00 0,04 0,03 2,83 0,44 44,07 0,00 18,02 6,38 0,05
dm-12 0,00 0,00 0,00 0,00 0,01 0,00 2,40 0,00 46,53 4,53 0,00
dm-13 0,00 0,00 0,03 0,00 4,88 0,00 176,75 0,00 26,46 10,75 0,03
答案1
我能给你的最佳答案是“iowait
是太高当它影响性能时。”如果你有大量的 I/O 并且只有很少的其他工作要做,只要数据写入磁盘的速度“足够快”,
那么“50% 的 CPU 时间花在iowait
”这种情况可能没问题。相反,如果服务器正在执行大量磁盘 I/O 并且明显缓慢以至于用户浪费“挂钟时间”等待操作完成。
要确定影响性能的因素,您需要对系统进行一些基准测试(压力测试),看看系统在开始明显停滞之前可以处理什么样的 I/O 吞吐量。
(从这些基准测试中获得的数字在很大程度上是学术性的 - 知道瓶颈在哪里发生固然很好,但什么时候碰巧的是,“解决方案”是减少 I/O 操作所花费的时间,或者减少在队列中等待的 I/O 操作数量。您可以通过切换到更快的磁盘、安装具有更多缓存的更好的控制器、安装 SSD、将工作负载拆分到多台服务器等来实现这一点。)