Swappiness詳解

灬紫荊灬發表於2020-12-21

當Linux系統耗盡實體記憶體時,非活動頁面將從RAM移動到交換空間。

Swappiness是一個Linux核心屬性,用於設定將頁面從實體記憶體交換到交換空間以及從頁面快取中刪除頁面之間的平衡。它基本上定義了系統使用交換空間的頻率。

本文介紹如何更改Linux系統上的swappiness值。

檢查Swappiness值
要檢查系統上的當前swappiness值,請使用以下cat命令:

cat /proc/sys/vm/swappiness

輸出:

60

大多數Linux發行版上的預設swappiness值為60:

雖然60的swappiness值適合大多數使用者,但在某些情況下,您可能需要設定較低的值。

您可以用來確定swappiness值的另一個命令是sysctl:

sysctl vm.swappiness

輸出:

vm.swappiness = 60

改變Swappiness值
Swappiness可以具有0到100之間的值。值0指示核心積極地避免儘可能長時間地交換。值100將積極地將程式交換出實體記憶體。

較低的值將使核心儘可能避免交換,而較高的值意味著核心將嘗試更積極地使用交換空間。

訪問交換記憶體比直接訪問實體記憶體要慢得多。swappiness引數的較低值很可能會提高整體系統效能。對於常規桌面安裝,建議值為10。對於大多數資料庫伺服器,建議使用swappiness值0或1。

最佳swappiness值取決於您的系統工作負載和RAM記憶體的大小。您應該以小增量調整此引數以查詢最佳值。

例如,要在執行時將swappiness值設定為10,請以root sudo使用者身份鍵入以下命令:

sudo sysctl vm.swappiness=1

要使swappiness引數在重新啟動後保持不變/etc/sysctl.conf,請使用文字編輯器開啟檔案:

sudo nano /etc/sysctl.conf

找到vm.swappiness引數並更改其值。如果此引數不存在,請將以下行附加到該檔案:

/etc/sysctl.conf檔案中內容

vm.swappiness=1