允許但不鼓勵在 Ubuntu 上進行交換

允許但不鼓勵在 Ubuntu 上進行交換

有大量關於完全禁用 Ubuntu 交換的帖子。是否可以告訴 Ubuntu 允許但阻止交換使用?

我在一台配備 1Gb 記憶體和小型 SSD 的筆記型電腦上安裝了 Xubuntu,將其變成了 Samba 伺服器。在最壞的情況下,可用記憶體仍然可以容納交換文件中的所有資料:

~$ free -m
            total       used       free     shared    buffers     cached
Mem:           991        696        294         17         66        175
-/+ buffers/cache:        454        536
Swap:         1952        107       1845

當可用記憶體可用時,我不鼓勵使用交換,因為交換會進行大量 IO 寫入,從而快速降低 SSD 效能。

是否可以將 RAM 優先於交換,或選擇僅限於「交換開/關」?如果有的話會引起什麼副作用?


感謝您指出現有的答案,它們是相關的,但很難找到。使用者必須知道 90% 的答案才能搜尋「如何設定 swappiness」。問題得到解答。希望這個問題標題有助於索引。

答案1

除非您有一個相當舊的 SSD,否則半現代 SSD 可以處理大量寫入,因此如果您有半現代 SSD,您實際上不需要執行任何操作。

如果您仍然想減少交換,請減少swappiness(現代 Linux 上的最小值是1,而不是0,如果您想全力以赴,儘管這10是建議的最小值,並且60是 Ubuntu 預設值)。當交換最終開始時,這會大大減慢速度(如果記憶體壓力很大,系統可能會凍結相當長一段時間),因為幾乎不會提前交換任何東西。

要設置swappiness,請將10下面替換為swappiness您想要的1to 100,其中較低的值交換頻率較低。開啟終端機(按Ctrl+ Alt+ T),然後執行:

sudo sysctl vm.swappiness=10
sudo nano /etc/sysctl.conf

現在,在底部新增一行(或如果已經有一行vm.swappiness,則進行編輯):

vm.swappiness = 10

Ctrl+O儲存。按Ctrl+X退出nano。關閉終端機視窗。

相關內容