最後更新 2021 年 7 月 17 日
一般在使用VPS來架設網站時,記憶體會因為大量使用而導致網站變慢,特別使用是cms系統,如wordpress所架設的網上購物平台WooCommerce,小編試過在測試高使用頻率的情況下使網站停頓數分鐘,後來發現是記憶體(ram)不足,使用了Swap memory後可大大改善問題。當然最好的方法是直接升級硬件,不過這個方法既能提升網站速度也不用錢。
Swap記憶體的原理是把硬碟的儲存空間分割一部分把一些比較少存取的資料放在裡面,Ram只儲存使用頻率較高的資料,提升速度。以下為Linux Ubuntu 的設定方法。
Time needed: 10 minutes
使用SSH登入Ubuntu 介面
- 登入後畫面
- 查看是否已使用Swap Memory
free -h
- 檢查硬碟空間大小
df -h
- 建立 Swap File作儲存資料之用
sudo fallocate -l 1G /swapfile - 更變File的權限,只給root存取
sudo chmod 600 /swapfile - 使用
mkswap
初始化交換空間
sudo mkswap /swapfile
- 啟用Swapfile
sudo swapon /swapfile - 查看Swapfile
free -h
已經能看到Swap memory成功啟用 - 開機時啟用
因Swapfile在重新開機後會消失,所以要把File設定成開機後即啟用交換空間
echo swapfile none swap defaults 0 0 | sudo tee -a /etc/fstab - 設為永久檔案
除了每次開啟自動啟用外,也能夠把Swapfile設為永久,重新開機後也不用被刪除
echo swapfile none swap sw 0 0 | sudo tee -a /etc/fstab - 設定swappiness
系統預設當ram用了6o%後就會使用swapfile,小編建議可以把數值降低,待ram差不多用完才使用swapfile,因為ram會比swapfile快上不少。
sudo sysctl vm.swappiness=10
改為10 - 修改為永久設定
swappiness在重新開機後會消失,需要設定為永久值
echo vm.swappiness=10 | sudo tee -a /etc/sysctl.conf - 修改cache設定
系統預設清除cache的頻率為100
建議修改為50即可
sudo sysctl vm.vfs_cache_pressure=50
設為永久值:
echo vm.vfs_cache_pressure=50 | sudo tee -a /etc/sysctl.conf
最後重新開機一次即可