執行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.
至於效果好不好嘛.
可能根據每個環境要進行監控一下.