Sun Java System Web Proxy Server 4.0.4 管理ガイド

キャッシュの詳細設定

キャッシュの詳細を設定することにより、キャッシュを有効にし、プロキシサーバーがキャッシュするプロトコルの種類を制御できます。キャッシュの詳細には次の項目が含まれます。


注 –

大きなキャッシュの詳細の設定には時間がかかるため、管理インタフェースがタイムアウトする可能性があります。そのため、大きなキャッシュを作成する場合は、コマンド行ユーティリティーを使用して、キャッシュの詳細を設定してください。キャッシュのコマンド行ユーティリティーの詳細については、「キャッシュのコマンド行インタフェースの使用」を参照してください。


Procedureキャッシュの詳細を設定するには

  1. サーバーマネージャーにアクセスし、「Caching」タブをクリックします。

  2. 「Set Cache Specifics」リンクをクリックします。

    「Set Cache Specifics」ページが表示されます。

  3. 適切なオプションを選択して、キャッシュを有効または無効にできます。

    キャッシュはデフォルトで有効になっています。

  4. 作業ディレクトリを指定します。

    デフォルトでは、作業ディレクトリはプロキシインスタンスの下にあります。この場所は変更できます。詳細については、「キャッシュの作業ディレクトリの作成」を参照してください。

  5. パーティション設定リンクをクリックします。

    「Add/Edit Cache Partitions」ページが表示されます。新しいキャッシュのパーティションを追加したり、既存のキャッシュのパーティションを編集したりできます。キャッシュサイズは、キャッシュを増やすことができる最大のサイズです。最大キャッシュサイズは 32G バイトです。詳細については、「キャッシュサイズの設定」を参照してください。

  6. キャッシュの容量設定リンクをクリックします。

    「Set Cache Capacity」ページが表示されます。「Set Cache Capacity」ページで、キャッシュの容量を設定できます。

  7. 「Cache HTTP」を選択して、HTTP ドキュメントのキャッシュを有効にします。

    プロキシサーバーで HTTP ドキュメントのキャッシュを行うことにした場合、キャッシュ内のドキュメントの最新状態チェックを常に行うか、あるいは定期的にチェックを行うかを決定する必要があります。また、プロキシサーバーがリモートサーバーにキャッシュのヒットを報告する機能を有効または無効にできます。詳細については、「HTTP ドキュメントのキャッシュ」を参照してください。利用できるオプションは次のとおりです。

    • 「Always Check That The Document Is Up To Date」オプションを選択し、HTTP ドキュメントを常に最新の状態に保ちます。

      • 「Check Only If Last Check More Than」ドロップダウンリストから時間数を選択し、プロキシサーバーの更新間隔を指定します。最新状態チェックは、次のオプションのいずれかを使用して実行します。

        • 「Use Last-modified Factor」: 配信元のサーバーからドキュメントとともに送信される、最後に変更されたヘッダー。

        • 「Use Only Explicit Expiration Information」: プロキシサーバーは Expires ヘッダーを使用して、キャッシュエントリが新しいか古いかを判断します。

        「Never Report Accesses To Remote Server」オプションを選択し、プロキシサーバーからリモートサーバーにアクセス回数を報告しないようにします。

      • 「Report Cache Hits To Remote Server」オプションを選択し、ドキュメントへのアクセス回数を追跡し、リモートサーバーに報告します。

  8. 「Yes; Reload If Older Than」チェックボックスを選択して、キャッシュされた FTP ドキュメントの更新間隔を設定し、ドロップダウンリストから値を選択して間隔を設定します。詳細については、「FTP ドキュメントと Gopher ドキュメントのキャッシュ」を参照してください。

  9. キャッシュされた Gopher ドキュメントに更新間隔を設定できます。「Yes; Reload If Older Than」チェックボックスを選択し、ドロップダウンリストから値を選択して間隔を設定します。詳細については、「FTP ドキュメントと Gopher ドキュメントのキャッシュ」を参照してください。

  10. 「了解」をクリックします。

  11. 「Restart Required」をクリックします。「Apply Changes」ページが表示されます。

  12. 「Restart Proxy Server」ボタンをクリックして、変更を適用します。

キャッシュの作業ディレクトリの作成

キャッシュファイルは、キャッシュパーティションに置かれています。「Set Cache Specifics」ページで指定する作業ディレクトリは、多くの場合、キャッシュの親ディレクトリになります。キャッシュされたすべてのファイルは、キャッシュディレクトリに、体系付けられたディレクトリ構造として表現されます。キャッシュディレクトリ名を変更する場合、またはキャッシュディレクトリを別の場所に移動する場合、プロキシに新しい場所を指定する必要があります。

キャッシュのディレクトリ構造は複数のファイルシステムに拡張できるため、大容量のキャッシュ構造を 1 つの大容量ディスクで管理するのではなく、複数の容量の小さなディスクに分割することができます。各プロキシサーバーには専用のキャッシュディレクトリ構造が必要です。つまり、キャッシュディレクトリは、複数のプロキシサーバーで同時に共有することはできません。

キャッシュサイズの設定

キャッシュサイズは、パーティションサイズを表します。キャッシュサイズは、常にキャッシュ容量より小さくする必要があります。キャッシュ容量はキャッシュを増加させることができる最大サイズであるためです。すべてのパーティションサイズの合計は、必ずキャッシュサイズ以下にする必要があります。

プロキシのキャッシュに利用できるディスク容量は、キャッシュのパフォーマンスに大きく影響します。キャッシュが小さすぎる場合、Cache GC がキャッシュされたドキュメントを削除してディスクに空き容量を作る頻度が増加し、ドキュメントがコンテンツサーバーから取得される頻度が高くなります。これらの動作によってパフォーマンスが低下します。

より多くのドキュメントをキャッシュでき、ネットワークトラフィックの負荷を減少させ、プロキシの応答時間を速くできるため、キャッシュサイズを大容量にすると効率が向上します。また、キャッシュされたドキュメントは、ユーザー側で不要になれば GC によって削除されます。ファイルシステムの制限をなくすことにより、キャッシュサイズが大きくなり過ぎることはなくなります。余分な容量は未使用領域として残るだけです。

またキャッシュは複数のディスクパーティションに分割できます。

HTTP ドキュメントのキャッシュ

HTTP ドキュメントは、ほかのプロトコルのドキュメントにはないキャッシュ機能を備えています。ただし、キャッシュを正しくセットアップし、設定することで、プロキシサーバーでの HTTP、FTP、および Gopher の各ドキュメントを効果的にキャッシュできるようになります。


注 –

Proxy Server 4 は HTTPS ドキュメントのキャッシュをサポートしていません。


HTTP ドキュメントにはすべて詳細ヘッダーセクションがあり、プロキシサーバーはこのセクションを使用してプロキシキャッシュ内のドキュメントとリモートサーバー上のドキュメントを比較し、評価します。プロキシが HTTP ドキュメントに対して最新状態チェックを実行する場合、プロキシはサーバーに 1 つの要求を送信し、キャッシュ内のドキュメントが古ければサーバーにドキュメントを返すように指示します。ドキュメントは最後の要求から、変更されていないことが多く、したがって転送されません。このような HTTP ドキュメントの最新状態チェックにより、帯域幅が節約され、遅延が減少します。

リモートサーバーとのトランザクションを減らすために、プロキシサーバーで HTTP ドキュメント用にキャッシュ有効期限設定を設定できます。キャッシュ有効期限設定では、サーバーに要求を送信する前に HTTP ドキュメントの最新状態チェックが必要かどうかを評価するようにプロキシに情報を提供します。プロキシはこの評価を、ヘッダー内の HTTP ドキュメントが最後に変更された (Last-Modified) 日付に基づいて行います。

HTTP ドキュメントでは、キャッシュ更新設定も使用できます。このオプションは、プロキシが常に最新状態チェックを行うかどうか (有効期限の設定がオーバーライドされる)、プロキシが一定期間待機してからチェックを行うかどうかを指定します。次の表に、有効期限設定と更新設定の両方を指定した場合のプロキシの動作を示します。更新設定を使用すると、遅延が減り、帯域幅を大幅に節約できます。

表 12–1 HTTP でのキャッシュ有効期限設定とキャッシュ更新設定の使用

更新の設定 

有効期限の設定 

結果 

常に最新状態チェックを行う 

(適用なし) 

常に最新状態チェックを行う 

ユーザー指定の間隔 

ドキュメントの「expires」ヘッダーを使用 

更新期間が過ぎれば最新状態チェックを行う 

 

ドキュメントの Last-Modified ヘッダーで評価 

評価および expires ヘッダーに小さな値を設定* 


注 –

* 小さな値を使用すると、ドキュメントが頻繁に変更されるため、キャッシュのデータが古くなりません。


HTTP キャッシュの更新間隔の設定

プロキシサーバーで HTTP ドキュメントのキャッシュを行うことにした場合、プロキシサーバーでキャッシュ内のドキュメントの最新状態チェックを常に行うか、あるいはプロキシサーバーでキャッシュ更新設定 (最新状態チェックの間隔) に基づいてチェックを行うかを指定する必要があります。HTTP ドキュメントの場合、更新間隔は 4 〜 8 時間が適当です。更新間隔を長くすると、プロキシがリモートサーバーに接続する回数が少なくなります。プロキシが次の更新までの間に最新状態チェックを行わない場合でも、クライアントで「Reload」ボタンをクリックすると更新を実行できます。この操作により、プロキシはリモートサーバーで強制的に最新状態チェックを実行します。

HTTP ドキュメントの更新間隔は、「Set Cache Specifics」ページまたは「Set Caching Configuration」ページで設定できます。「Set Cache Specifics」ページでは、グローバルなキャッシュプロシージャーを設定できます。また「Set Caching Configuration」ページでは、特定の URL およびリソースのキャッシュプロシージャーを制御できます。

HTTP キャッシュの有効期限ポリシーの設定

また、Last-Modified 要素または明示的な有効期限情報のみを使用して、キャッシュされたドキュメントが最新かどうかを確認するようにサーバーを設定できます。

明示的な有効期限情報とは、一部の HTTP ドキュメント内にある、ファイルが期限切れになる日時を指定するヘッダーです。明示的な Expires ヘッダーを使用する HTTP ドキュメントは多くないため、Last-modified ヘッダーに基づいて評価してください。

HTTP ドキュメントを Last-modified ヘッダーに基づいてキャッシュすることを決定した場合、有効期限の評価で使用する割合を選択する必要があります。LM 要素として知られるこの割合に、最後の変更からドキュメントで最後に最新状態チェックが実行された時間までの間隔を乗算します。この結果の数字を、最後の最新状態チェックからの経過時間と比較します。この数字が間隔時間よりも小さい場合、ドキュメントの期限は切れていません。割合が小さくなると、プロキシのドキュメントチェックの頻度が高くなります。

たとえば、最後の変更が 10 日前に行われたドキュメントを考えてみます。Last-Modified 要素を 0.1 に設定した場合、プロキシはこの要素の意味を、ドキュメントが 1 日 (10 * 0.1 = 1) の間変更されない、と解釈します。その場合、ドキュメントのチェックが 1 日以内に実行されている場合、プロキシはキャッシュからドキュメントを返します。

同じ例で、HTTP ドキュメントのキャッシュ更新設定が 1 日未満に設定された場合、プロキシは 1 日に何度か最新状態チェックを実行します。プロキシは常に、ファイルがより頻繁に更新される値 (キャッシュの更新またはキャッシュの有効期限) を使用します。

HTTP ドキュメントの有効期限設定は、「Set Cache Specifics」ページまたは「Set Caching Configuration」ページで設定できます。「Set Cache Specifics」ページでは、グローバルなキャッシュプロシージャを設定できます。また「Set Caching Configuration」ページでは、特定の URL およびリソースのキャッシュプロシージャを制御できます。

HTTP アクセスのリモートサーバーへの報告

Sun Java System Web Proxy Server でドキュメントがキャッシュされると、そのドキュメントには再度更新されるまでに、何度もアクセスできます。リモートサーバーの場合、プロキシにコピーを 1 つ送信し、プロキシがそれをキャッシュする動作が 1 回のアクセス、すなわち「ヒット」になります。プロキシサーバーは、指定されたドキュメントが現在の最新状態チェックから次のチェックまでの間にプロキシキャッシュからアクセスされた回数をカウントし、次回ドキュメントが更新されるときに追加 HTTP 要求ヘッダー (Cache-Info) でそのヒットカウントをリモートサーバーに送信します。このように、リモートサーバーがこの種類のヘッダーを認識するように設定されていれば、リモートサーバーはドキュメントのアクセス回数をより正確に受信できます。

FTP ドキュメントと Gopher ドキュメントのキャッシュ

FTP と Gopher では、ドキュメントの最新状態をチェックするための方法が使用できません。したがって、FTP ドキュメントと Gopher ドキュメントのキャッシュを最適化する唯一の方法は、キャッシュ更新間隔の設定になります。キャッシュ更新間隔は、リモートサーバーから最新バージョンのドキュメントを取得するまでにプロキシサーバーが待機する時間です。キャッシュ更新間隔を設定しない場合、プロキシはキャッシュ内のバージョンが最新である場合でも、リモートサーバーからこれらのドキュメントを取得します。

FTP および Gopher にキャッシュ更新間隔を設定する場合、プロキシがドキュメントを安全に取得できると考えられる間隔を選択します。たとえば、変更がまれな情報を格納している場合、数日間の高い数値を使用します。データが常に変更されている場合、最低でも数時間間隔でファイルが取得されるようにします。更新中は、古いファイルをクライアントに送信してしまう危険性があります。この間隔が十分に短い場合 (数時間)、このような危険性をほぼ完全に除外でき、応答時間も著しく向上します。

FTP ドキュメントおよび Gopher ドキュメントのキャッシュの更新間隔は、「Set Cache Specifics」ページまたは「Set Caching Configuration」ページで設定できます。「Set Cache Specifics」ページでは、グローバルなキャッシュプロシージャを設定できます。また「Set Caching Configuration」ページでは、特定の URL およびリソースのキャッシュプロシージャを制御できます。「Set Cache Specifics」ページの使用の詳細については、「キャッシュの詳細設定」を参照してください。「Set Caching Configuration」ページの使用の詳細については、「キャッシュの設定」を参照してください。


注 –

FTP ドキュメントおよび Gopher ドキュメントでドキュメント間に大きな相違がある場合 (ドキュメントにより変更頻度が異なる場合)、「Set Caching Configuration」ページでドキュメントの種類ごとに個別にテンプレートを作成し (たとえば、リソース ftp://.*.gif でテンプレートを作成するなど)、次にそのリソースに適した更新間隔を設定します。