Linuxでキャッシュを追い出す

root権限が必要。

# sync
# echo 3 > /proc/sys/vm/drop_caches

echoする数字は1~3があり、


1 : ページキャッシュ

2 : ダーティーキャッシュとinode

3 : ページキャッシュ、ダーティーキャッシュ、inode

Linuxでキャッシュをクリアしたい時に使える。
「1」が読み込みに、「2」が書き込みに関連してそう。
とりあえず「3」を指定しておけば良さそう。
なお、これが使用できるのはkernel2.6.6以降とのこと。
rootでスクリプト作成しておいて、スティッキービット付けておけば便利そう。


rootが使えない環境はmemhogコマンドなどで対応。

搭載量よりも大きくmemhogしてしまうとoomキラーが発動してOSが落ちる可能性があるので注意。

以下は500MBのメモリ領域をクリアした例。ギガの時は「g」とか指定。

$ memhog 500m
..................................................