Linux

當主記憶體仍然可用時是否會發生頁面交換?

  • July 28, 2020

我剛剛偶然發現了一個隨機問題,即使仍有一些可用的記憶體空間,Linux 核心是否會交換任何記憶體頁面?我認為原則上不需要,但是 Linux 發行版在安裝時通常仍然需要一個專用的交換分區。

換句話說,我是否可以取消設置整個交換分區並仍然獲得穩定的 Linux 系統,因為我有足夠數量的主記憶體,我不能用盡全力?

即使仍有一些可用的記憶體空間,Linux 核心是否會換出任何記憶體頁面

查看vim /proc/sys/vm/swapiness(至少在 Ubuntu 上)。這指定了交換完成的頻率,並且可以暗示即使在記憶體可用時也完成了交換。為此找到最佳值的真正原因在很大程度上取決於作業系統的工作方式、可用記憶體和處理器本身。(我的 swapiness 指定為 60。)

從我在較新的更新中看到的是,如果沒有指定交換分區,Linux 會使用可用儲存空間自動創建 /swapfile(大小增加到 1-2 GB)。這不會明確耗盡您的輔助儲存,而只會讓您的電腦執行更順暢。看看輸出ubuntu@ubuntu:/home/ubuntu$ swapon。我的是:

NAME      TYPE      SIZE   USED PRIO  
/swapfile file      1.1G 123.5M   -2  
/dev/sda6 partition   2G   1.7G    1

這意味著您幾乎可以“獲得穩定的 Linux 系統”,而無需交換分區。

唯一的例外是,當您的作業系統休眠/崩潰並且您切換到另一個作業系統時,交換分區可以更輕鬆地重新載入半保存(或未保存)的資訊。(我不確定,但我認為這是因為交換分區包含一個/hiberfile.)

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