Intro
常見的應用情境是:在低規格的 Linux 開發環境中,安裝套件時若因記憶體不足導致失敗,可透過暫時設定 Swap 檔案,模擬額外記憶體來解決問題。
查詢與卸載
查看 Swap 狀態:
$ swapon -s
Filename Type Size Used Priority
/dev/vdb partition 4194300 0 -2
/swapfile file 20971516 0 -3
卸載 Swap:
# Partition
$ sudo swapoff /dev/hdb2
# File
$ sudo swapoff /swapfile
增加虛擬記憶體
這裡提供檔案與分割區兩種方式指南
透過建立檔案設定 Swap
主要透過swapon
與swapoff
指令來啟用或停用 Swap,常見做法是建立一個檔案,並將其設為 Swap 空間,以使用硬碟來模擬額外記憶體。
-
先建立一個想要配給 Swap 容量的檔案於硬碟分割區,可以透過
fallocate
指令:$ sudo fallocate -l 20G /swapfile
-
格式化此檔案為Swap file:
$ sudo chmod 600 /swapfile $ sudo mkswap /swapfile $ sudo swapon /swapfile
-
完成後可以使用
swapon -s
指令確認查看目前使用中的 Swap 狀態 -
如要設定自動掛載此 Swap,則可以於
/etc/fstab
加入設定:/swapfile swap swap sw 0 0
透過創建 Swap 分割區來設定 Swap
與使用檔案作為 Swap 空間不同,Swap 分割區是直接在硬碟中劃分一塊專用區域來作為 Swap。這種方法通常會提供更好的效能,適用於需要穩定且高效能的環境。
-
創建 Swap 分割區
使用
fdisk
或parted
工具來創建 Swap 分割區。例如,使用fdisk
:sudo fdisk /dev/sda
在
fdisk
中,選擇創建一個新的分割區,並設置分割區類型為Linux swap
(代碼 82)。完成後保存並退出。 -
格式化為 Swap 分割區
使用
mkswap
格式化新創建的分割區:sudo mkswap /dev/sdaX
其中
/dev/sdaX
是你新創建的分割區名稱。 -
啟用 Swap 分割區
使用
swapon
指令啟用該分割區:sudo swapon /dev/sdaX
-
自動啟用 Swap 分割區
為了讓 Swap 分割區在開機時自動啟用,將它加入
/etc/fstab
:/dev/sdaX none swap sw 0 0
保存並退出。