天天看點

如何在 Ubuntu 20.04 上添加交換空間

如何在 Ubuntu 20.04 上添加交換空間

本文最先釋出在:

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

如何在 Ubuntu 20.04 上添加交換空間

微信群:

加上面的微信,備注微信群

QQ: 3217680847

如何在 Ubuntu 20.04 上添加交換空間

QQ 群: 82695646

如何在 Ubuntu 20.04 上添加交換空間

繼續閱讀