Linux 中巨大的、不可預測的 I/O 性能下降
我使用 Debian 測試大約 6 年沒有任何問題(我只是定期更新它),但最近它開始表現出一種隨機行為,可以概括為“持續到重啟的低 I/O 性能”。
問題是,突然所有磁碟讀取和寫入速度減慢到約 5MB/秒,導致連續讀取和寫入。由於速度如此之低,磁碟不會受到機械挑戰或壓力,但一切都會變慢,直到我重新啟動。
電腦的 I/O 子系統由一個 OCZ Vertex 3 SSD 和兩個 WD Caviar Black HDD 組成。SSD 保存著作業系統的讀取量大的部分,而 HDD 上的一個分區保存著其餘部分。
為了診斷問題,我嘗試了以下方法但沒有成功:
top
在 CPU 和 I/O 使用中都沒有顯示任何失控活動。hdparm
返回磁碟的正常性能等級(我只檢查過-t
)。smartctl
沒有顯示磁碟中的任何性能問題。長時間的測試表明磁碟和新磁碟一樣好。系統有 Z77 晶片組、16GB RAM 和 Intel i7 3770K CPU,統計數據顯示 RAM、I/O 或 CPU 沒有飽和跡象,但我沒有調試此類問題的經驗(尤其是在核心空間中)。任何幫助將不勝感激。
更新1:
- 作為預防措施,我在每個分區上執行(強制)fsck。所有FS都是乾淨的。
- 順便說一句,我發現了一個月前發布的 BIOS 升級並應用了它。
- 沒有分區填充超過 50%。
更新 2:
問題兩天沒有浮出水面。要麼
fsck
,要麼 BIOS 更新清除了系統中的一些堵塞物。我仍在監視該問題,並將通過事後回答結束該問題。更新 3:
問題剛剛浮出水面,我做了更多的探勘工作。請看答案。
我設法再次重現了這個問題,這是一個大磁碟記憶體的結果。我的磁碟記憶體可以增長超過 8GB,並且似乎某些應用程序不喜歡它並且 I/O 會受到影響。
echo 3 > /proc/sys/vm/drop_caches
以 root 身份刪除磁碟記憶體可以解決問題。我目前不知道為什麼大磁碟記憶體會導致這種 I/O 降級。**最後更新:**經過更多調查,我發現記憶體中的文件數量引發了問題。在嘗試將許多小文件送出回磁碟時,它正在破壞磁碟。自從我使用該系統十年以來,我冒險並重新安裝了 64 位 Debian。現在它工作順利。這可能是十年升級的副作用,發現了 32 位作業系統的限制。