mod_mem_cache URI をキーにしたコンテンツのキャッシュ Experimental mod_mem_cache.c mem_cache_module これは実験的なモジュールです。文書もまだ開発中です...

このモジュールは mod_cache必要とします。 これは mod_cache のサポートモジュールとして 動作し、メモリを使用したストレージ管理機構を提供します。 mod_mem_cache は二つのモードのどちらかで動作するように 設定できます: ファイル記述子のキャッシュかヒープ中のオブジェクトの キャッシュです。ローカルで生成されたコンテンツに対してキャッシュするときや、 mod_proxy を使って ProxyPass (つまりリバースプロキシ向け) に設定したときのバックエンドサーバのコンテンツに対して キャッシュをするときに、たいへん効果的です。

コンテンツのキャッシュへの保存と取得は URI に基づいたキーが使われます。 アクセス保護のかけられているコンテンツはキャッシュされません。

mod_cache mod_disk_cache MCacheSize キャッシュに使われるメモリの最大量をキロバイト単位で指定 MCacheSize KBytes MCacheSize 100 server config

MCacheSize ディレクティブはキャッシュに 使われるメモリの大きさをキロバイト (1024 バイト単位) で設定します。 新しいオブジェクトをキャッシュに挿入することになり、オブジェクトの サイズが残りのメモリより大きい場合は、その新しいオブジェクトの挿入が 可能になるまで、古いオブジェクトが削除されていきます。 オブジェクトは MCacheRemovalAlgorithm で指定したアルゴリズムに従って削除されます。

MCacheSize 700000

MCacheSize の値は MCacheMaxObjectSize ディレクティブで指定した値より 大きくなければなりません。

MCacheMaxObjectCount キャッシュに保管されるオブジェクトの最大数 MCacheMaxObjectCount value MCacheMaxObjectCount 1009 server config

MCacheMaxObjectCount ディレクティブは キャッシュされるオブジェクトの最大数を指定します。 この値はハッシュテーブルを作成するときに使われます。 新しいオブジェクトを挿入するときに、オブジェクトの最大数に 達してしまっているとき、新しいオブジェクトをキャッシュできるように、 オブジェクトを一つ消去します。オブジェクトは MCacheRemovalAlgorithm で指定されたアルゴリズムに従って削除されます。

MCacheMaxObjectCount 13001
MCacheMinObjectSize キャッシュに保管されるドキュメントの最小サイズ (バイト) MCacheMinObjectSize bytes MCacheMinObjectSize 0 server config

MCacheMinObjectSize ディレクティブは、ドキュメントを キャッシュするかどうかを判定する、最小のサイズをバイト数で設定します。

MCacheMinObjectSize 10000
MCacheMaxObjectSize キャッシュに保管できるドキュメントの最大サイズ (バイト) MCacheMaxObjectSize bytes MCacheMaxObjectSize 10000 server config

MCacheMaxObjectSize はドキュメントを キャッシュするかどうかを判定する、最大のサイズをバイト数で設定します。

MCacheMaxObjectSize 6400000

MCacheMaxObjectSize の値は MCacheMinObjectSize で指定した値よりも大きくなければなりません。

MCacheRemovalAlgorithm キャッシュから削除するドキュメントを選ぶためのアルゴリズム MCacheRemovalAlgorithm LRU|GDSF MCacheRemovalAlgorithm GDSF server config

MCacheRemovalAlgorithm ディレクティブは、 キャッシュから削除するドキュメントを選択するためのアルゴリズムを 指定します。選択肢は二つあります:

LRU (Least Recently Used)
LRU 一番長くアクセスされていないドキュメントを削除します。
GDSF (GreadyDual-Size)
GDSF はキャッシュミスのコストとドキュメントのサイズをもとに、 ドキュメントのキャッシュに対して優先度をつけます。 優先度の一番低いドキュメントが最初に削除されます。
MCacheRemovalAlgorithm GDSF
MCacheRemovalAlgorithm LRU
MCacheMaxStreamingBuffer ストリームされている応答をキャッシュ不能と決定するまでに メモリにバッファする最大量 MCacheMaxStreamingBuffer size_in_bytes MCacheMaxStreamingBuffer of 100000 か MCacheMaxObjectSize の少い方 server config

MCacheMaxStreamingBuffer ディレクティブは、 サイズが大きすぎてキャッシュできないと判断するまでの、 ストリーム応答のバッファのための最大バイト数を指定します。 ストリーム応答とは、コンテンツの全体がすぐには得られず、 Content-Length がわからない応答を指します。 ストリーム応答を行なうようなものにはプロキシされた応答や、 CGI スクリプトの出力などがあります。デフォルトではストリームの応答は Content-Length がない限りキャッシュされません。 このような動作になっている理由は、結局キャッシュに収まりきらないと 判断することになってしまうような、サイズの大きな応答のバッファリングに、 大量のメモリが消費されるのを避けるためです。 MCacheMaxStreamingBuffer ディレクティブを使うと、 Content-Length を含まない応答に対して指定された最大量まで バッファするようにできます。バッファを使い切ると、バッファ中の コンテンツは捨てられ、キャッシュ動作を中止します。

注:

MCacheMaxStreamingBuffer に非零の値を 使っても、クライアントへの応答の転送に特に遅延は発生しません。 mod_mem_cache はストリームコンテンツの断片を バッファにコピーした後、即座に、その部分をクライアントへの配送の 次段の出力フィルタに送ります。

# Enable caching of streamed responses up to 64KB:
MCacheMaxStreamingBuffer 65536