趣味のプログラム工房

Cache::SizeAwareFileCacheについて(3) キャッシュ実装で高負荷

キャッシュを使い始めたらキャッシュを探す処理でかなりの負荷が掛かっているらしく余計遅くなってしまいましたorz
ということで、キャッシュサイズの調整が必要です。大きければいいわけでもないらしいです。

と、思っていたのですが、どうやら別の可能性が出てきました。
Cache::FileCacheにはキャッシュの生存時間を制限する機能(default_expires_inで指定した時間)があるのですが、期限の切れたキャッシュを削除するメソッドとして Purge()があります。
どうやらこのPurge()メソッドを毎回動かしていたのが高負荷の原因の可能性が高いです。
また、max_sizeの指定についても負荷が高いらしく、より、負荷を下げたいのであれば、max_sizeは指定せずに、定期的にlimit_size()メソッドを使用するのがいいみたいです。
(max_sizeを指定するとキャッシュを使用する度にlimit_sizeメソッドを実行するようなものなので指定しない方が低負荷なのは当たり前ということですね。)
2011年03月21日