Ubuntu(Linux)のメモリキャッシュクリア方法

Ubuntu11.04使っていて時間が経つと主なアプリ全部閉じても、PC立ち上げた時より200メガ以上メモリを食っていて、なんかの理由でメモリの開放が不味いみたいです、winなら開放アプリもいくつかあるんですが、システムモニタでプロセスを見てもどれがメモリ食ってる露骨なプロセスもなく特定出来なく悩んで検索すると。

プーさんたちとセキュリティさんのサイトに解決方法がありました。

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

難しいことはよくわからないのでターミナル立ち上げて実行してみます。

free

total used free shared buffers cached
Mem: 3968188 1199912 2768276 0 31440 398120
-/+ buffers/cache: 770352 3197836
Swap: 4102140 64 4102076

メモリの使用の状態を確認したらターミナルを管理者モードにして一番効きそうなdrop_cachesコマンド3を入れます。

sudo su

echo 3 > /proc/sys/vm/drop_caches

でもう一度freeで使用状態を確認

total used free shared buffers cached
Mem: 3968188 1036776 2931412 0 1936 275892
-/+ buffers/cache: 758948 3209240
Swap: 4102140 64 4102076

赤字の部分がfreeメモリなので今回は大体150Mbぐらい開放されました。

これでメモリ開放のために再起動する必要がなくなりました。

次の悩みはchrome使っていると複数のゾンビプロセスが出ている時があって、タスクマネージャで終わらせても消えなくてちょっと気持ち悪い、入れてる拡張が悪いのかchrome16が悪いのか不明、chrome閉じたら消えるし不都合はないんですがやっぱり気持ち悪いので調べてわかったらまたうpします。

広告

Ubuntu(Linux)のメモリキャッシュクリア方法」への2件のフィードバック

  1. とげ

    これ、クリアすると遅くなりますよ。
    linuxは空いているメモリを有効活用するためにディスク周りのキャッシュをしてくれます。これがfreeが減っている理由です。
    このキャッシュ部分はメモリが足りなくなれば解放されて本来の用途に使われますからご安心を。
    あと、chromeの謎のプロセスはタブ一つごとに立ち上がるプロセスだと思います。タブの描画を担当してますから消しちゃダメです。

    1. Mr.WJ 投稿作成者

      コメントどうもです。
      キャッシュクリアで遅くなるとは気づきませんでした。
      スペックにもゆとりがあってUbuntuを普通に使う分には不自由はないんですがシステム・モニターでプロセスを見るとどうしても気になる部分がでてきますね、Linuxの使用歴が浅いので不明な点が多すぎて手探りでいじっています。

      chromeのプロセスはタブや拡張以外のまさに謎のゾンビがプロセスに残っています、もう少し調べないと上手く説明できませんです。

コメントは受け付けていません。