Ubuntu メモリを開放する

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"