Linux におけるメモリの解放(vm.drop_caches) ( ・∀・)ジサクジエン

Home » メモ帳 » Linux » Linux におけるメモリの解放(vm.drop_caches) ( ・∀・)ジサクジエン
Linux コメントはまだありません

ストレージ性能の違いによるサービスやアプリケーションの起動速度の違い…等を検証する時には必須です。 ( ・∀・)ジサクジエン

/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) を実行しておくべきである。

  • [0] 初期値
  • [1] ページキャッシュ解放
  • [2] dentry、inode 解放
  • [3] ページキャッシュ、dentry、inode 解放

実行例

$ free
             total       used       free     shared    buffers     cached
Mem:       8298852    2013168    6285684          0      93716    1759304
-/+ buffers/cache:     160148    8138704
Swap:      8393952        192    8393760
$ sync
$ sudo /sbin/sysctl -w vm.drop_caches=3
vm.drop_caches = 3
$ free
             total       used       free     shared    buffers     cached
Mem:       8298852     111472    8187380          0        276       7524
-/+ buffers/cache:     103672    8195180
Swap:      8393952        192    8393760
$ sudo /sbin/sysctl -w vm.drop_caches=0
vm.drop_caches = 0

参考文書