2007-07-18 [長年日記]

_ [Linux] ページキャッシュを強制的に解放

他グループのエンジニアから質問受けた時にちょいと調べたからメモ。/procの下にある、drop_cachesというファイルの操作でできるらしい。ということでちょっとお試し。
まずは確認。

# free
total used free shared buffers cached
Mem: 15949552 1550880 14398672 0 6736 126768
-/+ buffers/cache: 1417376 14532176
Swap: 1023968 0 1023968

キャッシュを解放。

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

また確認。

# free
total used free shared buffers cached
Mem: 15949552 1497040 14452512 0 2480 67888
-/+ buffers/cache: 1426672 14522880
Swap: 1023968 0 1023968

ちゃんと解放されてるっぽい。
ちなみに、drop_cachesに渡す値は、以下のようになってるらしい。

0: 初期値
1: ページキャッシュを解放
2: dentryとinodeを解放
3: ページキャッシュとdentryとinodeを解放

詳しくは、proc(5)のman pageを参照。

P.S. これはカーネル2.6.16以降じゃないと使えない模様。RHEL5はいいけど、RHEL4はダメだね。誰かRHEL4(というかカーネル2.6.15以前)でもできる方法知ってたら教えてくださいm(_ _)m

[追記] on 8/29/2007
どうやらRHEL4.6からはdrop_cachesが使えるっぽい。drop_cachesのパッチがバックポートで当ってるね。

本日のツッコミ(全1件) [ツッコミを入れる]
_ cialis (2009-12-11 23:03)

Hello! <br><a href="http://aixypeo.com/ayrxsa/1.html">cialis</a> ,

[]