Ubuntuでメモリを開放する方法です。溜まったキャッシュをクリアしたいときに使用します。
環境
- Ubuntu 16.04
方法
freeで現在のメモリ使用状況を確認します。buff/cacheが660Mも溜まってます。
$ free -h total used free shared buff/cache available Mem: 992M 69M 262M 5.1M 660M 745M
キャッシュの破棄を実行します。これによりdrop_cashedファイルが再生成されます。
$ sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
キャッシュの破棄は次のコマンドでも可能です。
$ sudo sysctl -w vm.drop_caches=3
freeで結果を見てみます。buff/cacheがすっきりしました。
$ free -hl total used free shared buff/cache available Mem: 992M 69M 856M 5.1M 66M 809M
補足
上のキャッシュクリアでは、ディスクへ書き込み済みのclear cache
のみがクリアされて、未保存のdirty cache
はクリアされないらしいです。ソースはここ。
とても安全です。
ですのでdirty cache
分もクリアしたい場合は、sync
を使って未保存のdirty cache
をディスクへ書き出してからキャッシュクリアを行うとより効果的にメモリの開放が行えます。次のような感じです。
$ sudo sh -c "sync; echo 3 > /proc/sys/vm/drop_caches"