在另外两台相同的机器上,我的软件raid10性能和行为有很大的不同。
我有两台硬件相同的机器,同时购买,有相同的软件版本,硬件版本和固件版本。每个都有一个SAS控制器,8x6GB/S通道进入一个SAS外壳,其中包含12个SAS磁盘。
在机器1上,它是稳定的,似乎工作得很完美,raid阵列中的每个磁盘的行为大致相同:忙碌时间相等(在生产负载级别上,所有磁盘中大约有33% ),虽然每周一次的软件raid检查运行,但写入和读取性能并没有降低。整个raid检查大约在一天内完成,使用所有可用的空闲带宽尽可能快地完成。这相当于200 MB/秒的读取,而此检查完成。
机器2是一个有问题的孩子。完整的raid检查基本上没有完成,尽管它被配置为也使用所有可用的磁盘带宽。当它试图检查时,它缓慢地以5MB/秒的速度前进,并且在这段时间里写入性能下降到大约30 MB/秒。另外,四个磁盘在35%繁忙,而其余磁盘平均繁忙22%。
在取消了机器2上的raid检查之后,写入速度返回到大约160 MB/秒。
如果我使用dd测试每个单独的mpath设备,那么在机器1上,我的最高速度是每驱动器145 MB /秒,最低的是119 MB/秒,其次是127 MB。其余的都在145 MB/秒的范围内。
在机器2上,我的速度在107 MB (x3磁盘)之间,其余的速度都在135 MB/秒以上,峰值为191 MB/秒(!)换一个磁盘。
我承认我在这里很舒服,但我找不到任何证据来得出结论。我还检查了两台机器上每个磁盘上的智能统计数据,虽然在所有磁盘上都有相当数量的“读取更正”错误,但这些值与读取性能之间似乎没有相关性,忙碌的%差异之间也没有相关性。
我找不到的任何东西都无法解释在一个框上执行RAID检查数组和在另一个框上执行RAID检查时的糟糕性能。关于下一步调试的建议,我们将不胜感激。
发布于 2016-01-07 22:03:39
我发现了问题。在软件阵列中的12个磁盘中的4个上禁用了写缓存。
以下是我为缩小范围所做的事情:
我将数组拆开,并使用dd和oflag=direct测试每个磁盘的写入速度。我发现那些繁忙%较高的也只能写大约75 MB/秒,而所有其他人都可以完成180 MB/秒的持续1GB和10 GB数据大小的写入。
但是,由于这4个慢磁盘都是非常一致的,所以我开始深入研究,并安装了sdparm以使我能够篡改SCSI参数页。
一旦我看到WCE (写缓存启用)的默认设置是打开的,但是这四个磁盘关闭了它,我就打开它。写入速度提高到180 MB/秒,数组现在正在以1GB/秒的速度进行重建(这大约是这组磁盘可以使用该控制器的最大值)。
check命令是sdparm --get=WCE /dev/mapper/mpatha并为未来的用户设置它,sdparm --set=WCE --save /dev/mapper/mpatha。
此外,节省了电力--这阻止了操作系统级缓存来保持速度,尽管oflag=direct仍然这样做。
https://serverfault.com/questions/746718
复制相似问题