はじめに
本来、OSにメモリの管理は任せるべきで介入する必要が殆どないと思う
けど、buff/cacheをできるかで空ける方法のメモ
たとえば、zabbixの監視のtriggerが古くて available を見てくれないときとかの一時的対処に
方法
$ sudo sync
$ sudo sysctl -w vm.drop_caches=3
サンプル
Ubuntuでのサンプルです。
$ free -h
total used free shared buff/cache available
Mem: 11Gi 1.5Gi 242Mi 42Mi 9.9Gi 9.8Gi
Swap: 3.8Gi 148Mi 3.7Gi
$ sudo sync
$ sudo sysctl -w vm.drop_caches=3
vm.drop_caches = 3
$ free -h
total used free shared buff/cache available
Mem: 11Gi 1.5Gi 9.8Gi 42Mi 395Mi 9.9Gi
Swap: 3.8Gi 148Mi 3.7Gi
解説
ページキャッシュ、dentry、inodeキャッシュの開放をコマンドで指示します。
これで、buff/cache は開放されます。
drop_cachesの値
- 1: ページキャッシュのみを解放します。
- 2: dentry(ディレクトリ情報)とinode(ファイル情報)のキャッシュを解放します。
- 3: ページキャッシュ、dentry、inodeのすべてを解放します。 一般的には3が使われます。
さいごに
かんたんでしたね