linux软件raid10,完全相同的机器,结果截然不同

我有两个完全不同的软件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仍然是直接的。