2017年3月12日 星期日

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。

 

 

 

Orignal From: Ubuntu 16.04 建立 Swap file & 調校 swap

沒有留言:

張貼留言