我有一个五磁盘阵列,在 RAID5 中运行 XFS,我想提高它的性能。我看到一些提示说将日志放在单独的设备上会有所帮助,将日志放在 SSD 上会有很大帮助吗?
理论上应该如此,但我还没能找到任何人真正这样做的案例研究,而且购买 SSD 然后让它不能正常工作充其量也只是带来不便而已……
答案1
您需要关注的性能指标是顺序写入。具有高顺序写入率的设备适合用作外部日志设备。也就是说,FS 日志相对于数据大小而言非常小。老式旋转磁性介质可以产生一些令人印象深刻的顺序写入数字。如果您有足够的空间,单个老式硬盘可以成为非常好的外部日志设备,只要您可以将该设备专用于该日志即可。
顶级 SSD 的连续写入速度可以超越旋转介质。通过将这些优质驱动器之一专用于日志记录,您可以获得一些好处。是的,它会磨损得更快,因为写入确实会磨损 SSD。但是,如果您只使用了 5% 的驱动器(如果那么多),这些驱动器上的固件足够智能,可以在您开始遇到日志卷损坏问题之前允许甚至 50%(或更多)的坏单元;您的操作系统应该在您到达这一点之前就对此发出警报。通过比旋转介质更快地提交写入,您可以大大减少 XFS 容易出现的元数据瓶颈。
实际上它是否更快?不能说。很大程度上取决于 XFS 驱动器上有什么类型的数据。正如我所说,元数据更新是件严肃的事情。如果“noatime”没有给您足够的喘息空间,并且您的吞吐量仍然受到元数据更新的限制,那么外部日志驱动器(SSD 或旋转驱动器)将是提高性能的下一步好办法。
答案2
回复:“大约 10 年来,有限的写入对于良好的固态存储来说都不是问题……”
这不是真的。
较新的基于闪存的 SSD 基于 MLC 闪存,其写入耐久性低于较旧的基于 SLC 的型号(约低 10 倍)。这些 SSD 上的固件将写入分布到 SSD 的整个容量中,这称为“磨损均衡”。底线是所有闪存 SSD 都会因写入活动而磨损,底层闪存部件的密度越高(从 SLC 到 2 位/单元 MLC 到 3 位/单元等),闪存磨损越快。
磁盘驱动器会随着时间而磨损,闪存也会随着使用而磨损。
闪存并不是存放文件系统日志的好地方,这不仅是因为闪存会磨损,还因为经济原因。日志/日志写入是 100% 纯顺序 I/O(无随机性)。对于这种工作负载,旋转磁盘的成本仅为 SSD 的 1/10(以每秒每兆字节的成本计算)。
答案3
有没有办法将文件元数据(inode、extents...)发送到外部 SSD?
答案4
那将是一个非常糟糕的想法。SSD 的写入次数有限,将文件系统日志放在上面会很快导致其寿命终止。
祝你好运,
若昂·米格尔·内维斯