最終更新日: 2014年1月13日
Squid Home / Index

ディレクティブ: cache_dir

以前の名前:
動作条件:
デフォルト値: ディスクキャッシュを行いません。メモリ内のみにキャッシュオブジェクトをストアします。
提案された設定:

# ディスクキャッシュディレクトリを追加するには、コメントを外し以下を調整。
# cache_dir ufs /usr/local/squid/var/cache/squid 100 16 256

フォーマット:
cache_dir Type Directory-Name Fs-specific-data [options]
別のディスク・パーティション間でキャッシュを分散するために複数の cache_dir 行を指定することができます。

Typeは、使用するストレージシステムの種類を指定します。"ufs"だけがデフォルトで組み込まれています。
他のストレージシステムを有効にするには、configureオプションの --enable-storeio を参照してください。

'Directory' は、キャッシュ・スワップファイルが保存される最上位のディレクトリです。
あなたがディスク全体をキャッシュとして使用する場合、マウントポイントディレクトリを指定できます。
ディレクトリは Squid プロセスによって存在し、書き込み可能でなければなりません。
Squidはあなたのために、このディレクトリを(自動で)作成しません。

SMP構成では、cache_dir オプションを実行前にのオプションの前にしてはならず、マクロを使って構成する必要があり、また関係する各ワーカーに専用のキャッシュディレクトリを与える必要があります。

==== ufs ストアタイプについて ====

"ufs"は古くから知られている常に存在してきた、Squidのストレージフォーマットです。

使用方法:
cache_dir ufs Directory-Name Mbytes L1 L2 [options]
'Mbytes'はこのディレクトリの下で使用するディスク容量(MB)の量である。
デフォルトは100 MBです。ご使用の構成に合わせて変更してください。
ここにディスク・ドライブのサイズを入れないでください。
代わりに、Squidでディスクドライブ全体を使用する場合は、20%を減算しその値を使用します。

'L1' は 'Directory' の下に作成される最初のレベルのサブディレクトリの数です。デフォルトは16です。

'L2' は、第一レベルのディレクトリの下にそれぞれ作成する第2レベルのサブディレクトリの数です。デフォルトは256です。

==== aufs ストアタイプについて ====

"aufs" は "ufs" と同じ格納形式を使用し、POSIXスレッドを利用しSquidのメイン処理でのディスクI/Oをブロックしません。
これは、以前は非同期IOのSquidで知られていました。

使用方法:
cache_dir aufs Directory-Name Mbytes L1 L2 [options]
引数については、上記のufsでの説明を参照してください。

==== diskd ストアタイプについて ====

"diskd" は "ufs" と同じ格納形式を使用し、別々のプロセスを利用することでSquidのメイン処理でのディスクI/Oをブロックしません。

使用方法:
cache_dir diskd Directory-Name Mbytes L1 L2 [options] [Q1=n] [Q2=n]
引数については、上記のufsでの説明を参照してください。

Q1は、Squidが新しいファイルのオープンを止める場合の未承認I/O要求の数を指定します。
もし多くのメッセージがキューにある場合、Squidは新しいファイルを開くことはありません。デフォルトは64です。

Q2は、Squidがブロッキング開始時の未確認メッセージの数を指定します。
多くのメッセージがキューにある場合には、Squidはいくつかの応答を受信するまでのブロックします。デフォルトは72です。

Q1<Q2 (デフォルト)の場合、キャッシュディレクトリは、ヒット率の低下を犠牲にして低応答時間のために最適化ます。
Q1> Q2 の場合、キャッシュディレクトリは、応答時間の増加を犠牲にして、より高いヒット率のために最適化されます。

==== rock ストアタイプについて ====

使用方法:
cache_dir rock Directory-Name Mbytes <max-size=bytes> [options]

Rockストア・タイプは、データベース形式のストレージです。
すべてのキャッシュエントリは、固定サイズのスロット、スロットごとに1つのエントリを使用して、"database" ファイルに保存されます。
データベースのサイズはMB単位で指定します。
スロットサイズは、max-size オプションを使用してバイト単位で指定します。
max-size オプション詳細は下記を参照してください。

可能な場合は、ロックストアを使用した Squid は "disker" と呼ばれる専用の子プロセスを(複数可の)SquidカーカーのディスクI/ Oをブロックしないように作成します。
disker は、各 rock の cache_dir 毎に作成されます。
Disker はSquidがデーモンモードで動作していて、IpcIoディスクI/ Oモジュールをサポートしている場合にのみ作成されます。

swap-timeout=msec: Squidは書き込みをミスしたり、ディスクからの読み込みがヒットであるにも係わらずスワップ操作が指定されたミリ秒数以上かかると予測した場合には起動しません。
デフォルトまたはゼロに設定すると、ディスクI/Oの時間制限の強制的を無効にします。
同期I/OをブロックするとSquidが予想されるスワップ待機時間を見積もることができないため、I/Oモジュールをブロックして使用する場合には無視されます。

max-swap-rate=swaps/sec: 人為的に指定されたI / Oレート制限を使用してディスクアクセスを制限します。
平均I/Oレートが超過するようなスワップアウトリクエストは制限され遅延します。
個々のスワップイン要求(例えば、ヒット(hits) や リード(reads))は遅延しませんが、幾つかのFIFOキューに置かれているスワップアウトリクエスト共にそれらはスワップレートの測定に貢献しません。これらによって、max-swap-rate が小さい場合には長い時間待つことになります。

==== coss ストアタイプについて ====

NP: Squid-3では、COSSファイルシステムは本番の使用のためにあまりにも不安定なものとみなされたので、今回のリリースから削除されました。
私たちは、それが再びすぐに利用可能とらる事をを願っています。

block-size=n: COSSのcache_dirのための "ブロック・サイズ(block size)" を定義する。
Squidは、ブロック番号とファイル番号を使用します。
ファイル番号は24ビットに制限されているので、ブロックサイズがCOSSパーティションの最大サイズを決定します。
デフォルトは 512バイトで、それにより chache_dir の最大サイズは 512<<24である 8GBとなる。
注:Squidがcache_dirに幾つかのオブジェクトを書き込んだ後で、COSSブロック・サイズを変更しないでください。

COSSファイルストアは2.5から変更されました。
現在では、configで指定されたディレクトリに squid -z で作成された、'stripe'と呼ばれるファイルを使用しています。

==== 共通(COMMON) オプション ====

no-store
新たなオブジェクトがこのcache_dirに保存さてはならない。
min-size=n
この cache_dir が受け入れる、オブジェクトの最小のバイトサイズ。
それは、例えばAUFSように大きなオブジェクトに最適化されている場合にcache_dirを制限するために利用される。一方他のストア(例えばCOSS)では、小さなオブジェクトに最適化されている。
デフォルトは 0
max-size=n
このcache_dirがサポートしている、バイト単位の最大オブジェクトサイズ。
maximum_object_sizeディレクティブの値を指定し、それらより詳細な具体的なことが無いならばcache_dirはデフォルトをセットしてください。(IEはスモールストアキャパシティ(small store capacity)です)
注: 最大サイズの制限値を最適に利用するためには、まず、最小、最大サイズの値を持つのcache_dir行を指定する必要があります。

注: coss では、max-size は COSS_MEMBUF_SZ より小さくしなくてはならず、それは configure の --with-coss-membuf-size=N オプションで変更できます。

Topへ戻る

Copyright© 1998-2014 ROBATA.ORG