Linux

Linux(3.4)SSD交換分區使用導致極端延遲 - 如何消除?

  • December 23, 2012

我在帶有額外 6G 交換分區的 4G RAM 上執行,SSD 是一款相當不錯的 SAMSUNG MZMPA128HMFU 型號。當事物留在 RAM 中時,系統對工作負載的響應非常好,但是一旦事物以任何有意義的數量到達交換分區(比如說使用了 1GB+ 交換),在交換事件期間響應能力就會完全耗盡。SSD 燈亮了幾秒鐘,而顯然有很多東西被調入或調出,在此期間所有其他 IO 都被阻止。我已經看到系統負載在幾秒鐘內從 0.8 躍升至 10,然後隨著 IO 再次啟動而回落。當交換處於活躍使用狀態時(我打開了一堆大型應用程序),隨著正常執行時間的增加(現在是 26 天),這些令人作嘔的交換事件越來越頻繁地發生。

我正在查看latencytop,但它並沒有告訴我我可以繼續下去。

目前似乎沒有其他解決方案,只能停止足夠多的應用程序來執行 swapoff -a 並停止使用 swap。不確定這如何影響我的使用模式,我幾乎可以肯定這對於我經常執行的一組應用程序來說已經足夠了。

將 vm.swappiness 調低到 1 無濟於事。至少不是自己。

這是眾所周知的事情嗎?在使用虛擬記憶體時,我有哪些選擇來獲得良好的桌面響應能力?

我強烈建議安裝更多記憶體,以免您進行交換。任何交換都會降低 Linux 或 UNIX(tm) 系統的性能。所以安裝足夠的記憶體來停止交換!

如果您的工作負載確實需要超過 6GB 的活動 RAM,那麼您將無法真正調整任何東西以使其在交換時執行得更快。

少量的交換使用不一定是問題 - 我的 3GB 筆記型電腦已經執行了大約 30 天,並且正在使用 600MB 的交換(在旋轉硬碟上,而不是 SSD 上),但它執行良好 - 因為只有非活動頁面被換出的頁面很少(如果有的話)需要換回。

如果您無法為系統添加更多 RAM,那麼下一個最好的辦法是查看哪些程序正在使用這麼多 RAM,看看您是否可以消除它們或採取措施減少它們的 RAM 使用量。“top”命令對此很有用,只需使用“M”命令按記憶體使用情況排序。

引用自:https://unix.stackexchange.com/questions/59195