[linux] 調整 swap 參數

執行echo 1> ... ,echo 2> ...   
之後還是有時候會發生server記憶體吃滿的情況.

於是前輩建議我調整kernel內建的參數 swappiness 和 vfs_cache_pressure 試試看.

swappiness

swappiness 是調整系統進行Swap的頻率. 
建議值是 0~100 (0是低, 100是調高頻率).
我的ubuntu系統預設值為60.

$cat /proc/sys/vm/swappiness

可以這樣調整他. (重開就清掉了)

$sudo sysctl vm.swappiness=10

或者

$sudo vim /etc/sysctl.conf

# 加入參數
...
vm.swappiness=10
...

 

vfs_cache_pressure

vfs_cache_pressure 可以控制系統清除cache的頻率.
數值設定低會導致內核傾向於保留dentry和inode於記憶體中.
高就會提高清除重建的頻率.
而預設值為100
一般建議是不要太高.

$cat /proc/sys/vm/vfs_cache_pressure

一樣可以這樣設定.(但重開機後會被還原)

$sudo sysctl vm.vfs_cache_pressure=50

或者

$vim /etc/sysctl.conf
vm.vfs_cache_pressure = 500

也有人建議可以設定到 10000.
至於效果好不好嘛.
可能根據每個環境要進行監控一下.