1.首先用命令free查看系統內 Swap 分區大小
free -m
total used free shared buffers cached
Mem: 2012 1960 51 0 748 950
-/+ buffers/cache: 260 1751
Swap: 255 0 255
可以看到 Swap 只有255M,下面我們來擴大到2G。
sudo swapon --show
交換分區路徑
2.創建一個 Swap 文件
找一個空間足夠的目錄用來存放swap文件
mkdir /swap
cd /swap
sudo dd if=/dev/zero of=swapfile bs=1024 count=2000000
出現下列提示,上面命令中的 count 即代表swap文件大小。
記錄了2000000+0 的讀入
記錄了2000000+0 的寫出
2048000000字節(2.0 GB)已復制,63.3147 秒,32.3 MB/秒
把生成的文件轉換成 Swap 文件
或者用
sudo fallocate -l 1G /swapfile
執行以下命令為 swapfile 文件設置正確的權限:
sudo chmod 600 /swapfile
sudo mkswap -f /swapfile
Setting up swapspace version 1, size = 1999996 KiB
no label, UUID=fee9ab21-9efb-47c9-80f4-57e48142dd69
速度都很快
3.激活 Swap 文件
sudo swapon /swapfile
再次查看 free -m 的結果。
total used free shared buffers cached
Mem: 2012 1971 41 0 572 1156
-/+ buffers/cache: 241 1770
Swap: 2209 0 2209
添加成功。
要讓創建好的 swap 分區永久生效,可以將 swapfile 路徑內容寫入到 /etc/fstab 文件當中::
/swapfile swap swap defaults 0 0
調整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
如果要讓設置在系統重啟后依然有效,則必要在 /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
擴大原有swap交換分區:
需要先移除,然后重新創建添加。
如果添加第二個swap分區,系統反而會變慢。奇怪。