Hard-Drive

fsck 卷需要多長時間?

  • December 16, 2015

我們正在執行一個網站,該網站目前的頁面瀏覽量為 3-5 百萬。我們的站點是一個文件共享站點,因此它包含 250,000 個文件和幾千個符號連結。

硬碟為 1500GB SATA 磁碟。

使用hdparm我們了解到,我們的硬碟速度已經降低到15-20 MB/s,即80 MB/s。

所以現在我們要執行fsck來修復磁碟問題。

  1. 請問fsck會解決這個問題嗎?
  2. 需要多長時間fsck才能完成(只是我們想計算我們將要進行的停機時間)?

隨著同時訪問的文件數量的增加,速度會降低。硬碟驅動器不喜歡並行訪問:每次讀/寫磁頭需要切換柱面時,您都會損失幾毫秒。即使兩個文件在同一個圓柱體上,甚至是同一個軌道上,您可能仍然需要等待一個旋轉才能從一個移動到另一個。如果您以每秒兆比特來衡量驅動器性能,預計隨著並行訪問的增加,該性能會呈指數下降。

fsck對此無濟於事:它只修復目錄結構的損壞,不執行任何優化。

理想的解決方案是切換到固態儲存,因為它沒有旋轉碟片的任何物理限制。但這可能成本過高。

下一個最好的方法是使用針對並行訪問優化的 RAID。請記住,可以為許多不同的性能配置文件配置 RAID,因此您需要花一些時間來了解任何給定 RAID 硬體和驅動程序的設置。

您可以使用積極的文件系統記憶體來減少問題。如果你的系統有足夠的記憶體,linux 應該已經做得很好了。執行一個程序top,例如查看有多少可用 RAM。但是,如果最常用的文件不適合 RAM(或您可能獲得的任何 RAM),這將無濟於事。

窮人的解決方法是將文件拆分到幾個不同的物理硬碟驅動器(不僅僅是同一驅動器上的不同分區)。這並不是一個真正的長期可擴展解決方案,並且最終會花費您超過一個體面的 RAID。但是,如果您周圍有驅動器,這可能是一個快速解決方案。

對於任何涉及硬碟驅動器的解決方案,請確保它們具有快速旋轉速度和低尋軌延遲。

我在這裡寫了一篇關於硬碟性能的一般背景的文章:

UNIX 技巧 - 文件系統

引用自:https://serverfault.com/questions/362276