khi*_*ari 11 linux hard-drive kernel fsck capacity-planning
我们正在运行一个网站,目前提供 3-5 百万次页面浏览。我们的站点是一个文件共享站点,因此它包含 250,000 个文件和几千个符号链接。
硬盘为1500GB SATA盘。
使用hdparm我们才知道,我们的硬盘速度已经降到了15-20 MB/s,也就是80 MB/s。
所以现在我们要运行fsck来修复磁盘问题。
fsck会解决这个问题吗?fsck完成需要多少时间(只是我们想计算我们将要拥有的停机时间)?小智 9
随着同时访问的文件数量的增加,速度下降是可以预料的。硬盘驱动器不喜欢并行访问:每次读/写磁头需要切换柱面时,您都会损失几毫秒。即使两个文件在同一个圆柱体上,甚至在同一个轨道上,您可能仍然需要等待一个旋转才能从一个移动到另一个。如果您以每秒兆位为单位衡量驱动器性能,则预计随着并行访问的增加,该性能会呈指数下降。
fsck 对此无济于事:它仅修复目录结构的损坏,不执行任何优化。
理想的解决方案是切换到固态存储,因为它没有任何旋转盘片的物理限制。但这可能成本过高。
下一个最好的方法是使用为并行访问优化的 RAID。请记住,可以为许多不同的性能配置文件配置 RAID,因此您需要花一些时间来了解任何给定 RAID 硬件和驱动程序的设置。
您可以使用积极的文件系统缓存来减少问题。如果你的系统有足够的内存,linux 应该已经做得很好了。运行一个程序top,看看有多少空闲内存。但是,如果最常用的文件不适合 RAM(或您可能获得的任何 RAM),这将无济于事。
穷人的解决方法是将文件拆分到几个不同的物理硬盘驱动器(不仅仅是同一驱动器上的不同分区)。这并不是一个真正的长期可扩展解决方案,最终会让您花费比一个体面的 RAID 还要多的成本。但是,如果您周围有驱动器,这可能是一个快速解决方案。
对于任何涉及硬盘驱动器的解决方案,请确保它们具有快速旋转速度和低寻道延迟。
我在这里写了一篇关于硬盘性能的一般背景的文章: