Linuxサーバを長期稼働させておくとファイルシステムのキャッシュが堆積し、処理に時間がかかり、システム全体のパフォーマンスに影響する。
状態確認
/proc/sys/fs/dentry-state ファイルを cat コマンド等で開く。1カラム目はキャッシュの合計値で、2カラム目が利用されていないキャッシュの値となる。
# cat /proc/sys/fs/dentry-state
34898 14879 45 0 3185 0
キャッシュのクリア
echo コマンドとリダイレクトで /proc/sys/vm/drop_caches ファイルに2 を書き込む。もちろん vi エディタなどで直接編集しても同じ。
echo 2 > /proc/sys/vm/drop_caches
2 を書き込み後、再度ファイルを開いてみると2カラム目の数字が小さくなっていることからキャッシュが解放されている。
# cat /proc/sys/fs/dentry-state
18832 70 45 0 10 0
定期的に開放する。
稼働で蓄積されているので、定期的に開放したい場合は cron で定期的に2を書き込むようにすればよい。下記は毎日4:00にキャッシュを開放する場合の crontab 記載例
# crontab -e
0 4 * * * echo 2 > /proc/sys/vm/drop_caches
コメント