0%

ubuntu系統啟用swap

前言

架設網站或是服務之後,若是發現先前開的VM memory不夠服務使用

但又不想要增加多餘的預算調高VM的memory時

就可以透過swap-虛擬記憶體的功能

將一部分的硬碟空間當成memory來使用

查看當前配置

透過htop查看當前的memory配置

htop

這台的VM memory開8G

Swap預設是關閉的

也可以用free指令查看swap

free

也可以得知memory以及swap的設定

設定swap

切換成root或是使用sudo執行以下指令

1
fallocate -l 4G /swapfile

4G:代表要開多少虛擬記憶體
/swapfile:做為swap使用的檔案存放路徑

此時已經在/底下新增了一個swapfile的檔案

check-swapfile

但目前系統還不知道該檔案要做甚麼

需要告知系統透過此檔案啟用swap

依序輸入以下指令

1
2
3
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

將檔案權限設成僅root可讀寫

並透過mkswap告知系統將/swapfile檔案供swap使用

最後透過swapon 啟用swap

active-swap

重新查看配置

設定完成後重新查看目前的配置

htop

htop-new

free

free-new

可以確認swap已正常啟用

我們測試提高VM的記憶體使用量

check-swap-is-running

當我們在使用VM上的服務以至於memory使用量達到一定的程度時

就會開始使用虛擬記憶體

避免發生OOM的情況

將swap設為開機自動掛載

編輯 /etc/fstab

在最底下加入此行

1
/swapfile   none swap    sw 0 0

mount-swap

這樣每次重開機後就會自動掛載該檔案給swap使用囉