需要多长时间才能批量生产?

我们正在运行一个网站,目前正在服务3-5万页面浏览量。 我们的网站是一个文件共享网站,因此它包含25万个文件和几千个符号链接。

硬盘是1500GB的SATA硬盘。

使用hdparm我们知道我们的硬盘速度已经降低到15-20 MB / s,这是80 MB / s。

所以现在我们要运行fsck来修复磁盘问题。

  1. fsck会解决这个问题吗?
  2. fsck需要多less时间才能完成(只是我们要计算我们将要进入​​的停机时间)?

随着正在被访问的文件数量的增加,速度降低是可以预料的。 硬盘驱动器不喜欢被并行访问:每次读写头需要切换柱面时,都会丢失几毫秒。 即使两个文件在同一个圆柱体上,甚至是同一个轨道上,也可能需要等待一个旋转才能从一个圆柱体移动到另一个圆柱体。 如果以兆比特每秒来衡量驱动器性能,那么随着并行访问的增加,预计会呈指数级下降。

fsck不会对此有所帮助:它只修复对目录结构的破坏,它不会执行任何优化。

理想的解决scheme是转换到固态存储,因为它没有任何旋转盘片的物理限制。 但这可能是成本高昂的。

下一个最好的办法是使用针对并行访问进行了优化的RAID。 请记住,RAID可以configuration许多不同的性能configuration文件,所以您需要花一些时间来学习任何给定的RAID硬件和驱动程序的设置。

您可以使用积极的文件系统caching来减less问题。 如果你的系统有足够的RAM,linux应该已经做得相当好了。 运行一个像top这样的程序,看看有多less可用的RAM。 但是,如果最常用的文件不适合内存(或任何你可能获得的RAM),这不会真的有帮助。

穷人的解决方法是将文件分割成几个不同的物理硬盘(而不仅仅是同一个硬盘上的不同分区)。 这不是一个真正的长期可扩展的解决scheme,最终会让你花费更多的体面RAID。 但是,如果你有驱动器躺在附近,这可能是一个快速的修复。

对于涉及硬盘驱动器的任何解决scheme,请确保它们具有快速的转速和低寻道延迟。

我在这里写了一篇关于硬盘性能的一般背景的文章:

UNIX技巧 – 文件系统

我希望5个小时的fsck完成。

我会考虑(这意味着:testing,testing和testing)迁移到reiserfs。

  1. 否(fsck可以修复损坏的文件系统元数据,而不是损坏的磁盘,也不是一个碎片整理工具)。
  2. 取决于文件系统。 ext3,令人难以置信,我会保留几个小时。 更现代的文件系统,如ext4或xfs,可以轻松地快一个数量级。

hdparm执行顺序读取。 其他人说你的文件服务器磁盘应该做很多的寻找。

如果你得到HD错误,他们应该出现在你的/ var / log / somewhere里。

为什么不试试“smartctl -t short / dev / sda”,然后是“smartctl -t long / dev / sda”?…对于大多数新硬盘,即使使用HD 。 聪明会给你一些结果。 您可以使用“smartctl –all / dev / sda”来读取您的硬盘健康状况..

如果你发送一个hdparm到并发访问的硬盘,这可能是你的结果比以前less了很多的答案。

我应该尽快将您的数据移动到RAID设置。