1 分鐘閱讀

本文使用 Ubuntu 16.04 LTS

前言

提高server的回應速度和防止應用程序記憶體不足錯誤的最簡單方法之一,是加入一些swap。 在本文中,我們將介紹如何在Ubuntu 16.04中新增swap 請確認使用root登入,或使用sudo操作

警告 若server使用SSD硬碟,使用swap可能會導致硬體加速退化的問題, 因此建議在server儲存裝置hdd的情況再使用swap

加入swap

  1. 確認目前是否有建立swap
    $ sudo swapon --show
    
  2. 確認目前空間
    $ free -h
               total        used        free      shared  buff/cache   available
    Mem:           488M         36M        104M        652K        348M        426M
    Swap:            0B          0B          0B
    
  3. 查看分區
    $ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    udev            238M     0  238M   0% /dev
    tmpfs            49M  624K   49M   2% /run
    /dev/vda1        20G  1.1G   18G   6% /
    tmpfs           245M     0  245M   0% /dev/shm
    tmpfs           5.0M     0  5.0M   0% /run/lock
    tmpfs           245M     0  245M   0% /sys/fs/cgroup
    tmpfs            49M     0   49M   0% /run/user/1001
    

    /dev/vda1 就是目前主要分區,我們會從中切割一部分作為swap分區

  4. 建立分區
    $ sudo fallocate -l 1G /swapfile
    

    由於本範例中的server僅有512MB的RAM,因此我們建立一個1GB的swap。 (swap大小可依需求做調整)

  5. 驗證分區
    $ ls -lh /swapfile
    -rw-r--r-- 1 root root 1.0G Apr 25 11:14 /swapfile
    
  6. 修改分區權限
    $ sudo chmod 600 /swapfile
    $ ls -lh /swapfile
    -rw------- 1 root root 1.0G Apr 25 11:14 /swapfile
    
  7. 設定分區為swap
    $ sudo mkswap /swapfile
    Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
    no label, UUID=6e965805-2ab9-450f-aed6-577e74089dbf
    
  8. 啟用swap
    $ sudo swapon /swapfile
    
  9. 驗證swap是否啟用
    $ sudo swapon --show
    

設定自動啟用swap

  1. 備份fstab
    $ sudo cp /etc/fstab /etc/fstab.bak
    
  2. 把swap加入fstab
    $ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
    

優化設定

  1. 查詢目前Swappiness設定
    $ cat /proc/sys/vm/swappiness
    60
    

    對於desktop版本的linux,60的swappiness設置還不錯 但是對server版本來說,盡可能接近0是比較理想的

  2. 調整Swappiness設定
    $ sudo sysctl vm.swappiness=10
    vm.swappiness = 10
    
  3. 設定重開機時自動啟動
    $ sudo nano /etc/sysctl.conf 
    

    在文件尾端加入

    vm.swappiness=10
    

    存檔

  4. 調整Cache Pressure設定
    $ cat /proc/sys/vm/vfs_cache_pressure
    100
    

    因為100會太快把索引的節點從系統cache刪除,保守一點則需要調低一些

  5. 調整Cache Pressure為50
    $ sudo sysctl vm.vfs_cache_pressure=50
    vm.vfs_cache_pressure = 50
    
  6. 設定開機時自動啟動
    $ sudo nano /etc/sysctl.conf
    

    在文件尾端加入

    vm.vfs_cache_pressure=50
    

    存檔

參考

  1. How To Add Swap Space on Ubuntu 16.04

更新時間:

留言