我有两个完全不同的软件raid10性能和行为在其他两台相同的机器上。
我有两个硬件相同的机器,同时购买,具有相同的软件版本,硬件版本和固件版本。 每个控制器都有一个8 x 6 Gb / s通道的SAS控制器,通往一个可容纳12个SAS磁盘的SAS机箱。
在稳定的机器1上,RAIDarrays中的每个磁盘的性能大致相同:繁忙时间相同(生产负载级别的所有磁盘都是大约33%),而每周的软件RAID检查运行,写入和读取性能不降低。 完整的raid检查在一天之内完成,使用所有可用的备用带宽尽快完成。 此检查完成后,这相当于约200 MB /秒的读取次数。
机器2是一个有问题的孩子。 完整的RAID检查基本上从来没有完成,虽然它被configuration为也使用所有可用的磁盘带宽。 当它试图检查时,它以5MB /秒的速度下降,写入性能在这段时间下降到约30MB /秒。 此外,四个磁盘占有率为35%,其余占22%。
取消机器2上的RAID检查后,写入速度恢复到约160 MB /秒。
如果我使用dd来testing每台mpath设备,那么在机器1上,每个驱动器的读取速度大约为145 MB / sec,最低速度为119 MB / sec,接着是127 MB。 其余的都在145 MB /秒的范围内。
在机器2上,我得到107 MB(x 3磁盘)之间的速度,其余的都在135 MB /秒以上,一个磁盘的峰值为191 MB / sec(!)。
我承认在这里我的安乐窝已经很好了,但是我找不到任何证据来得出结论。 我还检查了两台机器上每个磁盘上的SMART统计信息,虽然在所有磁盘上都有相当数量的“读取纠正”错误,但值和读取性能之间似乎没有相关性,繁忙的差异。
没有我能find解释性能不佳时执行arrays在一个盒子上的RAID检查。 build议去哪里去debugging这将不胜感激。
我发现了这个问题。 写入caching在软件arrays中的12个磁盘中的4个被禁用。
以下是我做的缩小范围的方法:
我把这个数组分开了,并且使用dd和oflag = direct来testing每个磁盘的写入速度。 我发现繁忙程度较高的人也是只能写入大约75 MB /秒的数据,而所有其他人可以以180 MB /秒的速度写入1 GB和10 GB的数据。
但是,由于4个慢速磁盘都是非常一致的,所以我开始深入研究,并安装了sdparm ,以便让我摆弄SCSI参数页面。
一旦我看到WCE(写入caching启用)的默认打开,但这四个磁盘closures,我打开了它。 写入速度达到了180 MB / sec,而arrays现在以1 GB /秒的速度重build(这大约是磁盘可以用这个控制器完成的最大速度)。
检查命令是sdparm --get=WCE /dev/mapper/mpatha并为将来的用户设置它, sdparm --set=WCE --save /dev/mapper/mpatha 。
此外,节能还在继续 – 这样可以避免操作系统级别的高速caching来保持速度,尽pipe仍然是直接的。