雲計算

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

1.png
鏡像下載、域名解析、時間同步請點擊 阿里巴巴開源鏡像站

交換空間是硬盤上的一個空間,當物理 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 上添加交換空間:
1、首先,創建一個用作交換文件的文件:

sudo fallocate -l 2G /swapfile

如果fallocate工具在你的系統上不可用,或者提示說:fallocate failed: Operation not supported,請使用下面的命令去創建交換文件:

sudo dd if=/dev/zero of=/swapfile bs=1024 count=2097152

2、設置文件權限到600禁止常規用戶讀寫這個文件:

sudo chmod 600 /swapfile

3、在這個文件上創建一個 Linux 交換區:

sudo mkswap /swapfile

輸出結果如下:

Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=fde7d2c8-06ea-400a-9027-fd731d8ab4c8

4、通過運行下面的命令,激活交換區:

sudo swapon /swapfile

想要持久化,請打開/etc/fstab文件:

sudo nano /etc/fstab

並且粘貼下面的行:

/swapfile swap swap defaults 0 0

5、使用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 取決於你的系統、內存的使用方式。你需要在小區間內調整這個取值來查找一個最適合的值。

四、移除一個交換文件

想要取消激活,並且刪除交換文件,步驟如下:
1、取消激活交換空間:

sudo swapoff -v /swapfile

2、從/etc/fstab文件中移除交換文件條目/swapfile swap swap defaults 0 0
3、使用rm命令刪除實際的交換區文件:

sudo rm /swapfile

五、總結

至此,我們已經向你展示了在你的 Ubuntu 20.04 系統上如何創建一個交換空間,以及如何激活和配置交換空間。

阿里巴巴開源鏡像站 提供全面,高效和穩定的鏡像下載服務。釘釘搜索 ' 21746399 ‘ 加入鏡像站官方用戶交流群。”

Leave a Reply

Your email address will not be published. Required fields are marked *