對於磁盤IO比較大的服務器,運行一段時間發現能夠內存很是低服務器
free -m
發現buff/cache佔用很是高,並且沒有釋放。code
在網上不少文章建議經過下面的命令來手動釋放佔用的空間進程
sync echo 1 > /proc/sys/vm/drop_caches
可是這個方法只能暫時解決空間佔用的問題,也能夠經過AT指令來週期執行這個命令來釋放空間內存
另外一種是經過系統參數來解決,該參數強制系統預留多大的空閒空間原理
vm.min_free_kbytes = 836787 #1G
原理是kswapd 進程監視free空間,若是小於min設定的值,那麼kswapd 進程啓動,釋放buff/cache空間,這個時候系統將會hold住,若是IO比較頻繁的話可能會引發卡頓。方法
能夠根據本身的實際狀況來設定這個參數的大小。時間