Site icon Mr. 沙先生

Ubuntu 16.04 建立 Swap file & 調校 swap

由於看到 vultr 的 $2.5/month 方案就給他刷了下去,準備把 blog 轉過去,雖然記憶體只有 512MB 但是卻是 SSD 硬碟阿 !! 用來當 swap file 根本綽綽有餘

 

在這篇就記錄怎麼在 Ubuntu 16.04 實作 swap file

 

先查看目前剩餘的記憶體用量

$ free -h

total used free shared buff/cache available
Mem: 488M 52M 358M 14M 77M 392M
Swap: 0B 0B 0B

 

然後確認你的硬碟空間確實足夠

$ df -lh

 

開始建立你的 swap file,直接建一個 3G 的 swap file

$ sudo fallocate -l 3G /swapfile

 

只給 root 讀

$ sudo chmod 600 /swapfile

 

初始化為 swap

$ sudo mkswap /swapfile

 

掛載起來試試

$ sudo swapon /swapfile

 

確認 swapfile 有啟動

$ sudo swapon --show

NAME TYPE SIZE USED PRIO
/swapfile file 3G 0B -1

 

確認掛載成功

$ free -h

total used free shared buff/cache available
Mem: 488M 53M 353M 14M 80M 391M
Swap: 3.0G 0B 3.0G

 

寫到 fstab 開機自動掛載 swapfile

$ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

 

 

swap file 的效能調校

vm.swappiness 這個是控制 swap 和 ram 交換的頻率,當數值趨近於零時 kernel 不會將資料寫入磁碟,反之接近 100 會將每筆資料寫入磁碟,Ubuntu 16.04 預設是 10,但這邊可能頻繁需要使用 swap file,所以將他設為 60

$ sudo sysctl vm.swappiness=60
$ echo 'vm.swappiness=60' | sudo tee -a /etc/sysctl.conf

 

vfs_cache_pressure 是控制系統記憶體重新快取目錄與 inode 檔案的程度, 經常快取的成本相當高,預設是 100

$ sudo sysctl vm.vfs_cache_pressure=50
$ echo 'sysctl vm.vfs_cache_pressure=50' | sudo tee -a /etc/sysctl.conf

 

 

重開機測試 OK。

 

 

 

Exit mobile version