我有两台硬件相同的机器,同时购买,具有相同的软件版本,硬件版本和固件版本.每个都有一个带有8 x 6 Gb / s通道的SAS控制器连接到SAS机箱,该机箱可容纳12个SAS磁盘.
在机器1上,它是稳定的并且似乎工作正常,raid阵列中的每个磁盘的行为大致相同:繁忙时间相等(生产负载级别中所有磁盘的大约33%),以及每周软件raid检查运行,写入和读取性能不会降低.完整的raid检查在大约一天内完成,使用所有可用的备用带宽尽快完成.在此检查完成时,这相当于大约200 MB /秒读取.
机器2是一个问题儿童.尽管配置为使用所有可用磁盘带宽,但完全raid检查基本上从未完成.在尝试检查时,它以5 MB /秒的速度运行,在此期间写入性能下降到大约30 MB /秒.另外,四个磁盘占35%,而其余磁盘平均占22%.
取消机器2上的raid检查后,写入速度恢复到大约160 MB /秒.
如果我使用dd测试每个单独的mpath设备,在机器1上我得到的每个驱动器的读取速度大约为145 MB /秒,最低速度为119 MB /秒,然后是127 MB.其余的都在145 MB /秒范围内.
在机器2上,我获得107 MB(x 3个磁盘)之间的速度,其余都高于135 MB /秒,一个磁盘的峰值为191 MB /秒(!).
我承认自己已经远离了我的舒适区,但我找不到任何证据可以得出结论.我还检查了两台机器上每个磁盘上的SMART统计数据,虽然所有磁盘上都存在相当数量的“读取更正”错误,但值与读取性能之间似乎没有相关性,繁忙的%差异之间也没有相关性.
解决方法
以下是我为缩小范围所做的工作:
我打破了阵列,并使用带有oflag = direct的dd来测试每个磁盘的写入速度.我发现繁忙%较高的那些也只能写入大约75 MB /秒,而所有其他的则可以为持续的1 GB和10 GB数据大小写入180 MB /秒.
但是,由于4个慢速磁盘彼此非常一致,我开始挖掘,并安装了sdparm以允许我摆弄SCSI参数页面.
一旦我看到WCE(写缓存启用)的默认设置已打开,但这四个磁盘已将其关闭,我将其打开.写入速度上升到180 MB /秒标记,并且阵列现在以1 GB /秒的速率重建(这大约是这组磁盘可以使用此控制器执行的最大值.)
check命令是sdparm –get = WCE / dev / mapper / mpatha并为将来的用户设置sdparm –set = WCE –save / dev / mapper / mpatha.
此外,还节省了电源 – 这阻止了操作系统级缓存以保持速度,尽管oflag = direct仍然可以.