首頁 > 軟體

如何在Ubuntu上增加swap交換空間

2020-06-16 16:34:27

防止應用程式記憶體不足的最簡單方法之一是增加伺服器中的swap交換空間大小。在本文中,我們將解釋如何向Ubuntu伺服器增加swap交換空間。

步驟1:檢查swap交換空間資訊

在開始之前,首先執行以下命令,確保檢查系統是否已經有可用的交換空間。

linuxidc@linuxidc:~/www.linuxidc.com$ sudo swapon --show
[sudo] linuxidc 的密碼:
NAME      TYPE SIZE USED PRIO
/swapfile file  2G  0B  -2

檢查Ubuntu中的交換空間

如果您沒有看到任何輸出,則表示您的系統當前沒有可用的交換空間。

您還可以使用free命令確認沒有可用的交換空間。

linuxidc@linuxidc:~/www.linuxidc.com$ free -h
              總計        已用        空閒      共用    緩衝/快取    可用
記憶體:        3.8G        1.5G        569M        32M        1.8G        2.1G
交換:        2.0G          0B        2.0G

 
Ubuntu中的交換空間為2G

您可以從上面的輸出中看到,系統上沒有活動交換。

第2步:檢查分割區上的可用空間

要建立交換空間,首先需要檢查當前的磁碟使用情況,並確認有足夠的空間在系統上建立交換檔案。

檢查Ubuntu中的檔案系統磁碟使用情況

/ 的分割區有足夠的空間可用於建立swap檔案。

第3步:在Ubuntu中建立swap檔案

現在我們將使用fallocate命令在我們的Ubuntu根(/)目錄上建立一個名為“swap.img”的交換檔案(大小為1GB),您可以根據需要調整大小。並使用ls命令驗證交換的大小 如圖所示。

linuxidc@linuxidc:~/www.linuxidc.com$ sudo fallocate -l 1G /swap.img
[sudo] linuxidc 的密碼:
linuxidc@linuxidc:~/www.linuxidc.com$ ls -lh /swap.img
-rw-r--r-- 1 root root 1.0G Jul 26 01:54 /swap.img

在Ubuntu中建立swap檔案

從上面的輸出中,您可以看到我們已經建立了具有正確空間量(即1GB)的交換檔案。

第4步:在Ubuntu中啟用swap檔案

要在Ubuntu中啟用swap檔案,首先需要在檔案上設定正確的許可權,以便只有root使用者才能存取該檔案。

linuxidc@linuxidc:~/www.linuxidc.com$ sudo chmod 600 /swap.img
linuxidc@linuxidc:~/www.linuxidc.com$ ls -lh /swap.img
-rw------- 1 root root 1.0G Jul 26 01:54 /swap.img

在交換檔案上swap許可權

從上面的輸出中,您可以看到只有root使用者具有讀寫許可權。

現在執行以下命令將檔案標記為swap交換空間,並啟用交換檔案以開始在系統上使用它。

linuxidc@linuxidc:~/www.linuxidc.com$ sudo mkswap /swap.img
正在設定交換空間版本 1,大小 = 1024 MiB (1073737728  個位元組)
無標籤, UUID=735aa07f-d43e-4cec-92e3-383815de7317
linuxidc@linuxidc:~/www.linuxidc.com$ sudo swapon /swap.img

在Ubuntu中啟用swap交換空間

通過執行以下命令驗證交換空間是否可用。

linuxidc@linuxidc:~/www.linuxidc.com$ sudo swapon --show
NAME      TYPE  SIZE USED PRIO
/swapfile file    2G  0B  -2
/swap.img file 1024M  0B  -3
linuxidc@linuxidc:~/www.linuxidc.com$ free -h
              總計        已用        空閒      共用    緩衝/快取    可用
記憶體:        3.8G        1.5G        549M        32M        1.8G        2.0G
交換:        3.0G          0B        3.0G

驗證Ubuntu中的交換空間

從上面的輸出中可以看出,我們的新交換檔案已經成功建立,我們的Ubuntu系統將在必要時開始使用它。

第5步:在Ubuntu中永久掛載交換檔案

要使交換空間永久化,您需要在/etc/fstab檔案中新增交換檔案資訊,並通過執行以下命令對其進行驗證。

linuxidc@linuxidc:~/www.linuxidc.com$ echo '/swap.img none swap sw 0 0' | sudo tee -a /etc/fstab
linuxidc@linuxidc:~/www.linuxidc.com$ cat /etc/fstab

第6步:調整Ubuntu中的交換設定

您需要設定一些設定,這些設定會影響您在使用交換時的Ubuntu效能。

調整Swappiness值

Swappiness是一個Linux核心引數,用於指定系統將資料從RAM交換到交換空間的頻率(以及頻率)。 此引數的預設值為“60”,它可以使用“0”到“100”之間的任何值。 值越高,核心使用的交換空間越高。

首先,鍵入以下命令檢查當前的swappiness值。

linuxidc@linuxidc:~/www.linuxidc.com$ cat /proc/sys/vm/swappiness
60

檢查Swappiness值

 當前的swappiness值為60非常適合桌面使用,但對於伺服器,您必須將其設定為較低的值,即10。

linuxidc@linuxidc:~/www.linuxidc.com$ sudo sysctl vm.swappiness=10

要使此設定永久化,您需要將以下行新增到/etc/sysctl.conf檔案中。 

vm.swappiness=10

調整快取壓力設定

您可能想要更改的另一個類似設定是vfs_cache_pressure  - 此設定指定系統要在其他資料上快取inode和dentry詳細資訊的程度。

您可以通過查詢proc檔案系統來檢查當前值。

linuxidc@linuxidc:~/www.linuxidc.com$ cat /proc/sys/vm/vfs_cache_pressure
100

 

檢查快取壓力設定

當前值設定為100,這意味著我們的系統會過快地從快取中刪除inode資訊。 我建議,我們應該將它設定為更穩定的設定,如50。

linuxidc@linuxidc:~/www.linuxidc.com$ sudo sysctl vm.vfs_cache_pressure=50

要使此設定永久化,您需要將以下行新增到/etc/sysctl.conf檔案中。

vm.vfs_cache_pressure=50

完成後儲存並關閉檔案。

第7步:刪除Ubuntu中的交換檔案

要刪除或刪除新建立的交換檔案,請執行以下命令。

linuxidc@linuxidc:~/www.linuxidc.com$ sudo swapoff -v /swap.img
swapoff /swap.img
linuxidc@linuxidc:~/www.linuxidc.com$ sudo rm -rf /swap.img

 

最後,從/etc/fstab檔案中刪除交換檔案條目。

就這樣! 在本文中,我們已經解釋了如何在Ubuntu發行版上建立swap交換檔案。 如果您對本文有任何疑問,請隨時在下面的評論部分提出您的問題。


IT145.com E-mail:sddin#qq.com