在我的内核为 4.9.86 的系统上,我注意到我的磁盘(HDD 转速为 5400 rpm)有奇怪的行为,%工具在相当长的一段时间内(持续 5 分钟左右)持续达到 100%,我确实看到了平均RQ发生这种情况时大小为 8K。平均曲率和等待也很高,导致很多进程进入D状态(包括jdb2线程)。我也注意到了KB脏这次变高(在本例中为 658 MB,否则通常为几 KB),我是否达到磁盘饱和状态?
SAR Memory Usage:======================================
Linux 4.9.86 01/07/19 _x86_64_ (32 CPU)
11:29:20 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
11:29:21 80270488 52009236 39.32 354368 17373312 15789156 7.92 10257860 15388656 658488
Average: 80270488 52009236 39.32 354368 17373312 15789156 7.92 10257860 15388656 658488
SAR IO Usage:======================================
Linux 4.9.86 01/07/19 _x86_64_ (32 CPU)
11:29:22 tps rtps wtps bread/s bwrtn/s
11:29:23 351.00 0.00 351.00 0.00 2808.00
Average: 351.00 0.00 351.00 0.00 2808.00
SAR Device IO activity:======================================
Linux 4.9.86 01/07/19 _x86_64_ (32 CPU)
11:29:23 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
11:29:24 loop5 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:29:24 sda 285.00 0.00 2280.00 8.00 143.51 510.94 3.51 100.00
11:29:24 vault 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
Average: loop5 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: sda 285.00 0.00 2280.00 8.00 143.51 510.94 3.51 100.00
Average: vault 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
SAR Queue and Load avg:======================================
Linux 4.9.86 01/07/19 _x86_64_ (32 CPU)
11:29:25 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
11:29:26 0 1043 3.39 2.30 2.15 2
Average: 0 1043 3.39 2.30 2.15 2
文件系统ext3
与ext4
驱动程序一样安装,data=ordered,barrier=0
并启用日志记录设置。
突袭配置:
型号:SAS2008 固件版本:9.00.00.00 RAID 级别:RAID1
答案1
如果进程要发送大量非顺序(随机)小写入,这看起来就像您期望看到的那样。您的平均请求大小相对较小(8,这可能意味着 8×512 字节扇区 = 4K,因此是正常写入的最小值)。拥有更多的脏缓冲区也是一致的,这意味着写入已被传递到内核并且内核正在将它们写入磁盘。对于磁盘来说,285 tps 的性能相当不错。
您需要调查哪些程序正在写入磁盘并查看它们是否表现出异常行为。或者,如果可以将程序配置为更好地扩展写入(例如,如果它是数据库,则脏页写回速度通常是可配置的)。
ext3 并不真正推荐用于任何用途。 ext4 是一个保守的替代选择(但对于 ext4 barrier=0
,你显然不关心这一点); XFS 是另一个不错的选择(而且仍然非常可靠)。但我怀疑这真的会有帮助。不过,SSD 肯定会给远的更高的 IOPS。