Database JUNKY

MySQL,MariaDBを中心としたブログです

キャッシュを開放するコマンド(vm.drop_caches)

DB2、いや、データベースを稼動しているサーバでふと物理メモリを見ると、「うわ!こんなにメモリを食いつぶしている」なんてことありますよね。 例えば、DB2ですと、上限を設定しているはずなのに、上限以上のメモリを食っているなど(汗)、この現象が、DB2 V9系に限って発生するもんですから 、正直なところバグじゃないかと思い、サポートセンターに確認したところ、誠に的確な返答をいただき、大変勉強になりました。

db2としては規定のメモリを確保しているだけで、その他のメモリ確保はページキャッシュによるものという回答をいただきました。 正確な回答ではありませんが、Linuxのfreeコマンドはあまりあてにならないのかもしれません。

よって定期的ではありますが、Linuxのコマンドで以下のようなコマンドを入力することにより不要な領域を開放することができます。コマンドは以下の通りです

sysctl -w vm.drop_caches=option

option 1・・・ページキャッシュのみを解放 2・・・ダーティページとinodeキャッシュを解放 3・・・ ページキャッシュとダーティページとinode

オプションは、何を指定するかは、環境によりけりだと思いますので、こちらでは説明は割愛させていただきます。