SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

【apache】CacheLock On の効果は?

問題

CacheLock On にしたら、いいことあるんですか?

cache-lock-on

答え

キャッシュを有効にしているとき、キャッシュ作成中や、キャッシュ有効期限切れでキャッシュを再作成する必要があるタイミングで問題が発生する可能性があります。

キャッシュがまだないコンテンツ、キャッシュの有効期限切れのコンテンツにリクエストがあると、キャッシュが作成されますが、そのキャッシュ作成中にさらに立て続けにリクエストがあると、バックエンドに対して複数のリクエストが届いてしまうという問題が発生します。

その対策として、キャッシュを作成中であることを示すロックファイルを使って、後続のリクエストがバックエンドにアクセスするのを防ぐようにすることができます。

CacheLock の設定は、Apacheの設定ファイルでは、以下の3つで制御します。

CacheLock [ On | Off ]
CacheLockMaxAge [秒数]
CacheLockPath [/path/to/lock/directory]

設定例 キャッシュロック有効、待ち行列のタイムアウト15秒、ロックファイル置き場 /tmp/mod_cache-lock

CacheLock On
CacheLockMaxAge 15
CacheLockPath /tmp/mod_cache-lock

CacheLock は、デフォルトがOffなので、有効にする場合はOnを明示する。

CacheLockMaxAge は、バックエンドの処理が通常以上に遅いときなどに、接続したままいつまでも待たないように設定。

CacheLockPath のディレクトリは、手で作らなくても自動的に作られる。その中にディレクトリはたくさん作られるが、キャッシュのようにファイルは溜まらず、用が済むと通常は消えていく。

関連するメモ

コメント