fsck 卷需要多長時間?
我們正在執行一個網站,該網站目前的頁面瀏覽量為 3-5 百萬。我們的站點是一個文件共享站點,因此它包含 250,000 個文件和幾千個符號連結。
硬碟為 1500GB SATA 磁碟。
使用
hdparm
我們了解到,我們的硬碟速度已經降低到15-20 MB/s,即80 MB/s。所以現在我們要執行
fsck
來修復磁碟問題。
- 請問
fsck
會解決這個問題嗎?- 需要多長時間
fsck
才能完成(只是我們想計算我們將要進行的停機時間)?
隨著同時訪問的文件數量的增加,速度會降低。硬碟驅動器不喜歡並行訪問:每次讀/寫磁頭需要切換柱面時,您都會損失幾毫秒。即使兩個文件在同一個圓柱體上,甚至是同一個軌道上,您可能仍然需要等待一個旋轉才能從一個移動到另一個。如果您以每秒兆比特來衡量驅動器性能,預計隨著並行訪問的增加,該性能會呈指數下降。
fsck
對此無濟於事:它只修復目錄結構的損壞,不執行任何優化。理想的解決方案是切換到固態儲存,因為它沒有旋轉碟片的任何物理限制。但這可能成本過高。
下一個最好的方法是使用針對並行訪問優化的 RAID。請記住,可以為許多不同的性能配置文件配置 RAID,因此您需要花一些時間來了解任何給定 RAID 硬體和驅動程序的設置。
您可以使用積極的文件系統記憶體來減少問題。如果你的系統有足夠的記憶體,linux 應該已經做得很好了。執行一個程序
top
,例如查看有多少可用 RAM。但是,如果最常用的文件不適合 RAM(或您可能獲得的任何 RAM),這將無濟於事。窮人的解決方法是將文件拆分到幾個不同的物理硬碟驅動器(不僅僅是同一驅動器上的不同分區)。這並不是一個真正的長期可擴展解決方案,並且最終會花費您超過一個體面的 RAID。但是,如果您周圍有驅動器,這可能是一個快速解決方案。
對於任何涉及硬碟驅動器的解決方案,請確保它們具有快速旋轉速度和低尋軌延遲。
我在這裡寫了一篇關於硬碟性能的一般背景的文章: