
似乎有時,我的計算機會開始不必要的交換(記憶體使用量約為 25%),我不明白為什麼。
這種情況似乎在運行 Perl 腳本時最常發生,但這些腳本都不是密集型腳本,而且我找不到任何說明 Perl 只能看到一定量記憶體的內容。腳本完成後,甚至關閉 Firefox、Banshee 等後,交換使用情況仍然存在。
這對我來說成為一個大問題,因為一旦無論它是什麼開始交換,其他一切似乎也是如此。關閉程式或切換視角等基本操作所需的時間越來越長。如果不加以控制,這種交換使用最終將迫使我的電腦無限期地崩潰,甚至無法回應擊鍵!
我運行的是 Ubuntu 9.04,2.6.28-15 內核,有 4GB RAM,通常使用率約為 25%。
我也嘗試過降低“交換性”,但沒有成功。
答案1
我的建議是將你的 swappiness 設定為 0。
將swappiness 設為“較低的數字”可能會降低使用swap 的“頻率”,但將其設為0 將強制核心採用不同的程式碼路徑,強制所有記憶體分配在使用swap 之前首先用完所有可用記憶體和緩存空間。
您可以透過下達以下命令將 swappiness 設為零:
echo 0 > /proc/sys/vm/swappiness