大家都知道,當 Linux 系統在消耗完物理內存時,非活動頁面就會從物理內存移動到 SWAP 空間,而 SWAP 空間可以采用專用的 SWAP 分區或 SWAP 文件形式存在。
而在大多數情況下,在虛擬機中運行 Ubuntu 系統時,都不會自動創建 SWAP 交換分區。
下面系統極客就為大家介紹,如何為 Ubuntu 18.04 手動創建 SWAP 交換文件。
開始之前
在開始創建之前,請先使用如下命令檢查您的 Ubuntu 系統是否已經啟用了 SWAP 分區:
sudo swapon --show
如果輸出為空,則表示當前系統尚未啟用 SWAP 空間;反之,您將看到相關反饋。
雖然可能,但在同一台 Linux 機器上有多個 SWAP 空間的情況並不常見。
創建SWAP分區文件
您可以執行以下步驟在 Ubuntu 18.04 系統中添加 SWAP 交換文件:
1通過以下命令創建一個用於 swap 的文件:
sudo fallocate -l 1G /swapfile
如果未安裝 fallocate 或者收到錯誤提示,也可以使用以下命令創建 swap 文件:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
2執行以下命令為 swapfile 文件設置正確的權限:
sudo chmod 600 /swapfile
3使用 mkswap 實用程序在文件上設置 Linux SWAP 區域:
sudo mkswap /swapfile
4使用以下命令激活 swap 文件:
sudo swapon /swapfile
5要讓創建好的 swap 分區永久生效,可以將 swapfile 路徑內容寫入到 /etc/fstab 文件當中:
/swapfile swap swap defaults 0 0
6使用 swapon 或 free 命令驗證 SWAP 是否處於活動狀態,如下所示:
sudo swapon --show
sudo free -h
調整Swappiness值
Swappiness 是一個 Linux 內核屬性,用於定義 Linux 系統使用 SWAP 空間的頻率。Swappiness 值可以從 0 至 100,較低的值會讓內核盡可能少的使用 SWAP 空間,而較高的值將讓 Linux Kernel 能夠更加積極地使用 SWAP 分區。
Ubuntu 18.04 默認的 Swappiness 值為 60,您可以使用如下命令來查看:
cat /proc/sys/vm/swappiness
值為 60 對於 Ubuntu 18.04 桌面還算行,但對於 Ubuntu Server 來說,SWAP 的使用頻率就比較高了,所以您可能需要設置較低的值。例如,要將 swappiness 值設置為 40,請執行:
sudo sysctl vm.swappiness=40
sudo sysctl -p --system
如果要讓設置在系統重啟后依然有效,則必要在 /etc/sysctl.conf 文件中添加以下內容:
vm.swappiness=40
最佳 swappiness 值取決於您系統的工作負載以及內存的使用方式,您應該以小增量的方式來調整此參數,以查到最佳值。
移除SWAP分區
Ubuntu 18.04 要停用並刪除 SWAP 文件,請按照下列步驟操作:
1首先輸入以下命令停用 SWAP 空間:
sudo swapoff -v /swapfile
2在 /etc/fstab 文件中刪除有效 swap 的行。
3最后執行以下命令刪除 swapfile 文件:
sudo rm /swapfile