Thursday, January 13, 2011

Drop Caches

參考http://linux-mm.org/Drop_Cache

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 動作應該會釋放更多記憶體