Linuxのメモリ上のキャッシュを解放する

sunrise

いつも思いだすのに時間がかかるというか、ググるのでメモ。
例えば、ベンチマークとかをとっていて、残ったキャッシュを奇麗さっぱりに消したい時とかに使う。

Linuxのメモリで保持しているキャッシュをクリアするには、以下を実行する。

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


値の意味としては、、、

  • 1: ページキャッシュを解放
  • 2: dentry、inode を解放
  • 3: ページキャッシュ、dentry、inode を解放


以下を参考に。

/proc/sys/vm/drop_caches (Linux 2.6.16 以降)
このファイルに書き込みを行うことで、クリーンなキャッシュ、dentry、 inode をメモリ上から外し、そのメモリを解放する。
ページキャッシュを解放するには、 echo 1 > /proc/sys/vm/drop_caches とする。 dentry、inode を解放するには、 echo 2 > /proc/sys/vm/drop_caches とする。ページキャッシュ、dentry、inode を解放するには、 echo 3 > /proc/sys/vm/drop_caches とする。
この操作は非破壊的な操作で、ダーティな (dirty) オブジェクトは 解放されないので、この操作を行う際は最初に sync(8) を実行しておくべきである。

Man page of PROC

サンプル (before - after)

# free
             total       used       free     shared    buffers     cached
Mem:      12291444   10762028    1529416          0     814476    8200240
-/+ buffers/cache:    1747312   10544132
Swap:      2096440        136    2096304

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

# free
             total       used       free     shared    buffers     cached
Mem:      12291444     309068   11982376          0        320       8912
-/+ buffers/cache:     299836   11991608
Swap:      2096440        136    2096304

さっぱりしましたね!
それでは! =͟͟͞͞(๑•̀=͟͟͞͞(๑•̀д•́=͟͟͞͞(๑•̀д•́๑)=͟͟͞͞(๑•̀д•́


LinuxサーバHacks―プロが使うテクニック&ツール100選

LinuxサーバHacks―プロが使うテクニック&ツール100選

Linuxサーバ Hacks 2 ―コネクティング、モニタリング、トラブルシューティング

Linuxサーバ Hacks 2 ―コネクティング、モニタリング、トラブルシューティング

  • 作者:Bill von Hagen,Brian K. Jones
  • 出版社/メーカー: オライリー・ジャパン
  • 発売日: 2006/10/24
  • メディア: 単行本(ソフトカバー)