我整整一个星期都在绞尽脑汁试图弄清楚这一点。
先简单介绍一下,这是一台定制服务器,使用 Supermicro X8SIL 主板和 Xeon x3470,运行 Ubuntu Server 18.04。我的 SSD 和几个 WD 驱动器在板载 SATA 端口和 PCIe SATA 卡上运行,没有任何问题。直到本周一切都运行正常。
我最近买了几块 1TB 5400rpm HGST 硬盘,希望能设置几个 RAID 1 阵列。我注意到这些阵列重新同步的速度非常慢(最多只有 10MB/s),所以我做了一些调查。我将硬盘分别格式化为 ext4 文件系统,并使用dd if=/dev/zero of=/mnt/xyz bs=100k count=100 oflag=direct
我看到的是一个非常奇怪的问题。这些新驱动器在使用已知良好的 SATA 电缆连接到系统时表现出非常差的写入速度(使用已知良好的驱动器验证以获得预期的写入速度)。无论是主板上的 SATA 端口还是 PCIe 卡,我可以从这些驱动器中获得的最大写入速度约为 7-9MB/s,具体取决于我使用的驱动器。
但是,将 USB->SATA 适配器插入服务器上的 USB2 端口进行额外测试后,速度明显更快,高达 30MB/s,而且这些驱动器上的分区或文件系统没有发生任何其他变化。这是已知良好的驱动器在适配器上提供的速度(毕竟是 USB2),因此我相信新的 HGST 驱动器没有根本性问题,这是主板上的 SATA 操作与这些驱动器上的特定固件/控制器/任何东西之间的特定交互。据我所知,SMART 数据看起来正常,没有错误。
我测试了四个独立的 HGST 驱动器(2 个零件号 0J38083 和 2 个零件号 0J37013),并确认所有四个驱动器都表现出上述完全相同的行为。SATA 不行,但 USB->SATA 似乎可以正常工作。我还从其他制造商那里拿了几个随机驱动器,在相同的硬件上运行相同的测试,所有测试中的写入速度都保持不变。
我实在无法想象是什么导致了这样的问题,我甚至不知道从哪里开始进行故障排除。如果能提供更多故障排除思路或更改不同设置的建议,我将不胜感激。
提前致谢!
编辑:为了回应评论,这里是uname -a
和的输出arch
$ uname -a
Linux axel-base 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
$ arch
x86_64