https://forum.openwrt.org/viewtopic.php?id=28227
$ edit package/base-files/files/lib/preinit/30_failsafe_wait
and make ...
https://forum.openwrt.org/viewtopic.php?id=28227
$ edit package/base-files/files/lib/preinit/30_failsafe_wait
and make ...
There are three main topics during the meeting.
Rockins's topic is a very good starting-point, even including the study case, TP-LINK's hiring ads.
mpstat 数据如下:
Marvell 6281
CPU %usr %nice %sys %iowait %irq %soft %idle
all 0.00 0.00 5.98 93.69 0.00 0.33 0.00
all 0.00 0.00 3.65 96.01 0.00 0.33 0.00
all 0.66 0.00 7.97 89.37 0.00 1.99 0.00
M5000
CPU %usr %nice %sys %iowait %irq %soft %idle
all 17.67 0.00 22.33 0.00 0.00 0.00 60.00
all 11.33 0.00 22.00 0.00 0.00 0.00 66.67
all 7.33 0.00 16.33 0.00 0.00 0.00 76.33
客户认为M5000的 iowait 为0,那么CPU等待IO完成的时间是没有的,因此他的磁盘性能很 好,CPU不去干预;而6281的iowait%太高,CPU都在等,磁盘效率低下。
这里最要命的就是 iowait 概念。参考 mpstat 手册
CPU 的时间片在 mpstat 眼中划分为很多种类,在UP(unique processor)系统中
%usr + %nice + %sys + %iwoait + %irq + %soft + %steal + %guest + %idle = 100%
而其中的 %usr + %nice + %sys 是真正CPU在忙的时间,而其他都属于空闲期。 由上可知, 6281 在磁盘测试的时候使用了 0+0+5.98 = 5.98% 的CPU时间来处理I/O请求, 而 M5000 则使用了 17.63+0+22.33 = 40%,很明显 M5000 的磁盘IO更加占用CPU时间。
%iowait 同样也属于空闲期,但是细分成了属于等待磁盘I/O完成的空闲时间,CPU不会傻等 。一旦CPU有其他请求,他会立刻响应。
高的 iowait 代表 CPU早早完成了IO请求的处理而等待磁盘IO的完成。一旦 iowait 逼近 100%,则代表CPU够闲的同时磁盘IO性能过低,总结为磁盘IO成了系统瓶颈。
而M5000 花费了 40% 的CPU 时间来处理请求,这个时候IO传输已经完成,他根本没有等待 时间。这显得 CPU 性能相对磁盘IO反而心力不足,在密集型IO请求的系统中 CPU 会显得 很吃力。
IO性能的调校有超多的方法
同样也可以配合以下工具来试试