如何防止電腦在開始交換時凍結?

如何防止電腦在開始交換時凍結?

我是一名Java程式設計師,因此經常需要同時執行多個程序,這會消耗大量記憶體。

當我的記憶體已滿並且 Linux 開始交換時,我的電腦幾乎完全死機。我可以看到硬碟上的寫入量很大,一切反應都很慢,通常根本沒有反應。在X中移動滑鼠有時根本不起作用,有時會延遲幾秒鐘,點擊通常會延遲幾分鐘。有時可以更改為TTY(有很長的延遲),在那裡我通常可以毫無延遲地打字,但是當我嘗試登入時,輸入用戶名後需要幾分鐘才能出現密碼提示,並且通常出現一條錯誤訊息,告訴我登入超時。所以通常唯一的可能就是重新啟動電腦。

我注意到對硬碟的其他密集寫入也會顯著降低我的電腦速度。有時,當我在自己的電腦上複製檔案時,我會使用 rsync 來限制頻寬,否則系統將幾乎無法使用。

怎麼會這樣?目前,對我來說完全關閉交換似乎更有用。不幸的是,這可能會導致某些進程崩潰,但目前的替代方案是透過關閉電腦來崩潰所有進程。

我使用的是具有核心 3.6.2-gentoo 的 Gentoo Linux,HDD 上有一個 10 GB 交換分割區。

答案1

交換對於任何 UNIX/Linux 系統來說都是一件非常糟糕的事情。正如您所看到的,支援交換(尤其是磁碟系統)需要大量的資源參與。畢竟,系統正在將記憶體來回移動到磁碟,因此使用記憶體的其他程式可以運行。

如果在分析系統中所有正在運行的程式並將其刪除後,您仍然在進行交換,那麼最好的方法是向電腦添加更多記憶體。

相關內容