
本文最先釋出在:
https://www.itcoder.tech/posts/how-to-add-swap-space-on-ubuntu-20-04/交換空間是硬碟上的一個空間,當實體 RAM 記憶體被用盡時,被緊急征用的空間。當一個 Linux 系統 RAM 記憶體耗盡,不活躍的記憶體頁将會被移動到交換空間。
交換空間可以是一個獨立的交換分區,也可以是一個交換檔案。有代表性地,當在一個虛拟機上運作一個 Ubuntu 時,沒有一個交換分區,并且唯一的選項就是建立一個交換檔案。
本教程講解如何在 Ubuntu 20.04上添加一個交換檔案。
一、在開始之前
交換分區不應該被當作實體記憶體的替代品。因為交換分區是硬碟驅動器的一部分,它比實體記憶體更慢的通路時間。如果你的系統經常記憶體耗盡,你應該添加更多記憶體。
通常,交換檔案大小依賴于你的系統有多少 RAM 記憶體:
- 少于2 GB RAM 記憶體的系統 - 2倍 RAM 記憶體的大小
- 2 到 8 GB RAM 記憶體的系統 - 同樣 RAM 記憶體大小
- 大于 8 GB RAM 記憶體的系統 - 至少 4 GB 交換檔案
僅僅隻有 root 或者其他有 sudo 權限的使用者能夠激活 swap 檔案。
二、建立一個交換檔案
在這個例子中,我們建立
2 GB
交換檔案。如果你想添加更多交換檔案,将
2G
替換成你需要設定的交換空間的大小。
完成下面的步驟,在 Ubuntu 20.04 上添加交換空間:
01.首先,建立一個用作交換檔案的檔案:
sudo fallocate -l 2G /swapfile
如果
fallocate
工具在你的系統上不可用,或者你獲得一個消息:
fallocate failed: Operation not supported
,使用下面的指令去建立交換檔案:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=2097152
02.設定檔案權限到
600
阻止正常使用者讀寫這個檔案:
sudo chmod 600 /swapfile
03.在這個檔案上建立一個 Linux 交換區:
sudo mkswap /swapfile
輸出如下:
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=fde7d2c8-06ea-400a-9027-fd731d8ab4c8
04.通過運作下面的指令,激活交換區:
sudo swapon /swapfile
想要持久化,打開
/etc/fstab
檔案:
sudo nano /etc/fstab
并且粘貼下面的行:
/swapfile swap swap defaults 0 0
05.使用
swapon
或者
free
指令來驗證交換區是否已激活,像下面這樣:
sudo swapon --show
NAME TYPE SIZE USED PRIO
/swapfile file 2G 0B -1
sudo free -h
total used free shared buff/cache available
Mem: 981Mi 97Mi 68Mi 0.0Ki 814Mi 735Mi
Swap: 2.0Gi 10Mi 1.9Gi
三、調整 Swappiness 值
Swappiness 是一個 Linux 核心屬性,用來定義系統将會有多頻繁使用交換分區。它取值範圍從 0 到 100。一個較低的取值可以在可能的情況下,盡量避免交換,而一個較高的值會使得核心更頻繁地使用交換分區。
在 Ubuntu 上,預設的 Swappiness 取值被設定成
60
。你可以通過輸入下面的指令檢查這個目前值:
cat /proc/sys/vm/swappiness
60
Swappiness 為 60 适合大部分 Linux 作業系統,對于生産伺服器,你需要将這個值設定成更低。
例如,将 Swappiness 值修改成
10
,運作:
sudo sysctl vm.swappiness=10
想要将這個參數持久化,在重新開機時仍然起作用,将下面的内容附加到
/etc/sysctl.conf
vm.swappiness=10
最理想的 swappiness 取決于你的系統,以及記憶體是怎麼被使用的。你需要小步調整這個取值來查找一個最适合的值。
四、移除一個交換檔案
想要取消激活,并且删除交換檔案,按照下面的步驟:
01.首先,取消激活交換空間:
sudo swapoff -v /swapfile
02.下一步,從
/etc/fstab
檔案中移除交換檔案條目
/swapfile swap swap defaults 0 0
。
03.最後,使用
rm
指令删除實際的交換區檔案:
sudo rm /swapfile
五、總結
我們已經向你展示了在你的 Ubuntu 20.04 系統上如何建立一個交換檔案,并且激活,并且配置交換空間。
如果你有任何疑問,請通過以下方式聯系我們:
微信: sn0wdr1am86
微信群:
加上面的微信,備注微信群
QQ: 3217680847
QQ 群: 82695646