Linux kernel 2.6.16 之後的版本提供了 drop caches (包含 pagecache, indoe 和 dentry caches) 的機制,
此機制可以幫忙我們釋放大量的記憶體. 現在你可以扔掉以前只是為了去除 cache 而配置許多記憶體的 script
現在只需要操作 /proc/sys/vm/drop_caches 就可以完成
1. 釋放 pagecache:
echo 1 > /proc/sys/vm/drop_caches
2. 釋放 dentries 和 inodes:
echo 2 > /proc/sys/vm/drop_caches
3. 釋放 pagecache, dentries 和 inodes:
echo 3 > /proc/sys/vm/drop_caches
這是非破壞性的動作而且只會釋放完全沒在使用的部份
Dirty objects 在尚未寫到 disk 前其狀態將會維持在使用中而且是不能被釋放的
假如先執行 "sync" 使其 flush 到 disk 那 drop cache 動作應該會釋放更多記憶體