こんなページを見つけました。
http://www.atmarkit.co.jp/flinux/rensai/tantei01/bangai01c.html
drop_cachesは、既に利用されておらず、ストレージと同期の取れているキャッシュを空きメモリに移動してくれるんだそうです。ということで、
■cron_drop_caches.sh
date;
echo "total/used/free/shared/buffers/cached";
echo "before";
free -m|grep Mem:;
sync;
echo 3 > /proc/sys/vm/drop_caches;
echo 0 > /proc/sys/vm/drop_caches;
echo "after";
free -m|grep Mem:;
こんな感じのスクリプトを作って、cronで定期的に回せば良さそう。
■動作確認
# sh /root/cron_drop_caches.sh > result.txt
result.txtに実行結果が書き込まれます。
■毎日0時にメモリ解放
# crontab -e
00 0 * * * sh /root/cron_drop_caches.sh > /root/result.txt
問題はサーバーが動いているときの影響ですが、以下のサーバーが動いている環境でdrop_cachesを実行しても、特に問題は起きませんでした。