ヘッダーをスキップ
Oracle® Traffic Director管理者ガイド
11gリリース1 (11.1.1.6)
B66436-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

14.7 キャッシュ設定のチューニング

この項で説明する項目は、次のとおりです。

14.7.1 Oracle Traffic Directorにおけるキャッシュ

頻繁にリクエストされるデータをキャッシュすることで、クライアントがレスポンスを待機する時間が削減されます。また、頻繁にアクセスされるURLがメモリー内に格納される場合、オリジン・サーバーの負荷は大幅に削減されます。

Oracle Traffic Directorでは、キャッシュ機能はデフォルトで有効化されます。

  • オリジン・サーバーから静的および動的に生成されたコンテンツの両方がキャッシュされます。

  • 完全なレスポンス(レスポンス・コード: 200)のみがキャッシュされます。

  • HTTP GETおよびHEADリクエストへのレスポンスのみがキャッシュされます。

  • Oracle Traffic Directorは、レスポンスの本文、およびDest-IPProxy-AgentProxy-ConnectionServerSet-CookieState-InfoおよびStatusを除くすべてのレスポンス・ヘッダーをキャッシュします。

  • Oracle Traffic Directorは、コンテンツを再検証するディレクティブ、特定のヘッダーをキャッシュしないディレクティブなど、オリジン・サーバーからのCache-Controlディレクティブに従います。

  • 各仮想サーバーに固有の1つ以上のキャッシュ・ルールを構成できます。これらのルールは、最大ヒープ領域、最大入力数および最大オブジェクト・サイズなど、構成に指定された全体の制限に影響を受けます。

    キャッシュ・ルールは、すべてのリクエストに適用するようにも、指定された条件に一致するリクエストのみに適用するようにも構成できます。

  • キャッシュされたデータは、仮想サーバーごとに別々にプロセス・メモリー(ヒープ)内に保持されます。インスタンスが停止または再起動されると、キャッシュは空になります。

クライアントが最初にオブジェクトをリクエストすると、Oracle Traffic Directorはリクエストをオリジン・サーバーに送信します。このリクエストはキャッシュ・ミスになります。リクエストされたオブジェクトがキャッシュ・ルールに一致する場合、Oracle Traffic Directorオブジェクトをキャッシュします。同じオブジェクトの後続のリクエストについて、Oracle Traffic Directorはそのキャッシュのオブジェクトをクライアントに提供します。このようなリクエストは、キャッシュ・ヒットとなります。

Oracle Traffic Directorのキャッシュの動作は、RFC 2616の13項の仕様と整合性が取れています。詳細は、http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.htmlを参照してください。

14.7.2 インスタンスのキャッシュ設定およびメトリックの確認

キャッシュ設定の表示

  • 構成の現在のキャッシュ設定を表示するには、次の例に示すようにget-cache-propコマンドを実行します。

    tadm> get-cache-prop --config=soa
    enabled=true
    replacement=lru
    max-heap-space=10485760
    max-entries=1024
    max-heap-object-size=524288
    
  • 仮想サーバーに定義されたキャッシュ・ルールのリストを表示するには、次の例に示すようにlist-cache-rulesコマンドを実行します。

    tadm> list-cache-rules --config=soa --vs=soa --verbose --all
    rule            condition
    -------------------------
    cache-rule-2    "$uri = '^/images'
    cache-rule-1    -  
    
  • 仮想サーバー固有のキャッシュ・ルールの現在の設定を表示するには、次の例に示すようにget-cache-rule-propコマンドを実行します。

    tadm> get-cache-rule-prop --config=soa --vs=soa --rule=cache-rule-2
    enabled=true
    last-modified-factor=0
    min-object-size=1
    cache-https-response=true
    condition="$uri = '^/images"
    min-reload-interval=0
    rule=cache-rule-2
    query-maxlen=0
    compression=true
    max-reload-interval=3600
    

キャッシュ・メトリックの表示

プレーンテキストperfdumpレポートで、現在のキャッシュ・ヒット率、キャッシュ・ヒープ使用量、およびキャッシュ・エントリの再検証成功率を、次の例に示すように表示できます。

Proxy Cache:
---------------------------
Proxy Cache Enabled              yes
Object Cache Entries             42
Cache lookup (hits/misses)       183/79
Requests served from Cache       22
Revalidation (successful/total)  30/38 (  78.95%)
Heap space used                  16495
  • Proxy Cache Enabledは、インスタンスに対してキャッシュが有効であるかどうかを示します。

  • Object Cache Entriesは、キャッシュ内に現在存在するエントリ(URI)の数です。

  • Cache lookup (hits/misses)

    • 最初の数値は、リクエストされたURIに対してキャッシュ内でエントリが見つかった回数です。

    • 2番目の数値は、リクエストされたURIがキャッシュ内で見つからなかった回数です。

  • Requests served from Cacheは、Oracle Traffic Directorがキャッシュから提供したリクエストの数です。

  • Revalidation (successful/total)

    • 最初の番号は、キャッシュされたコンテンツの再検証が成功した回数です。

    • 2番目の数値は、Oracle Traffic Directorが、キャッシュされたコンテンツの再検証を試みた合計回数です。

    • パーセント値は、再検証試行合計回数に対する再検証成功回数の割合です。

  • Heap space usedは、現在使用中のキャッシュ・ヒープ領域の量です。

14.7.3 チューニング可能なキャッシュ・パラメータ

キャッシュは、キャッシュ・ヒット率が高い場合、つまり比較的大量のリクエストがオリジン・サーバーに送信されるのではなく、キャッシュから提供される場合、クライアントへのレスポンス時間を短くできるという点で有効と考えられます。キャッシュ・ヒット率を高くするには、オリジン・サーバーからのキャッシュ可能なレスポンスを格納するために十分なメモリーが必要であり、キャッシュ内のエントリを定期的に検証する必要があります。


注意:

動的なコンテンツは一般的にキャッシュできません。このため、オリジン・サーバーによって提供されるアプリケーションまたはコンテンツが、ほとんど動的コンテンツで構成されている場合、キャッシュ・ヒット率は低くなる傾向があります。この場合、キャッシュを有効化してチューニングしても、パフォーマンスは大幅に向上しない可能性があります。


キャッシュ・ヒット率を向上させるために、次のキャッシュ・パラメータをチューニングできます。

  • キャッシュ・エントリ置換メソッド

    キャッシュが一杯になると、つまりエントリ数が最大エントリ制限に到達する、またはキャッシュ・ヒープ・サイズが最大キャッシュ・ヒープ領域に到達すると、その後のキャッシュ・エントリは、既存のエントリが削除された場合のみ格納できます。キャッシュ・エントリの置換メソッドは、Oracle Traffic Directorにおいてキャッシュから削除できるエントリを決定する方法を指定します。

    • デフォルトの置換メソッドは、「最近最も使用されていない」(lru)メソッドです。キャッシュが一杯になると、Oracle Traffic Directorは、最近最も使用されていないエントリを最初に破棄します。

    • もう1つのメソッドは、「最も使用頻度が低い」(lfu)メソッドです。キャッシュが一杯になると、Oracle Traffic Directorは、最も使用頻度が低いエントリを最初に破棄します。

    いずれのメソッドでも、Oracle Traffic Directorがキャッシュからコンテンツを提供するごとに、使用状況の情報(lru置換メソッドの場合コンテンツが提供された時間、lfu置換メソッドの場合コンテンツが提供された回数)を追跡する必要があります。このため、オリジン・サーバーにリクエストを送信するのではなく、キャッシュから直接コンテンツを提供することで短縮できる時間は、使用状況の情報を追跡するために必要な待機時間によってある程度は相殺されます。2つのメソッドでは、lruの方が必要な演算リソースがわずかに少なくなります。

    置換メソッドとしてfalseを指定することで、キャッシュ・エントリの置換を無効化できます。

  • 最大キャッシュ・ヒープ領域

    使用可能なヒープ領域のうち少量しか使用されていない場合、仮想サーバー固有のキャッシュ・ルールの定義が絞り込まれすぎているため、レスポンスがキャッシュされていない可能性があります。

    最適なキャッシュ・ヒープ・サイズは、システム・メモリーにどれほどの空きがあるかによって異なります。キャッシュ・ヒープが大きい場合、Oracle Traffic Directorはより多くのコンテンツをキャッシュできるため、ヒット率はより高くなります。ただし、キャッシュされたコンテンツのページングがオペレーティング・システムによって開始されるため、ヒープ・サイズは大きくしすぎないでください。

  • キャッシュ内のエントリの最大数

    キャッシュ内のエントリ数が、perfdumpレポートに示されるように、一貫して最大エントリ数に近いまたは同数である場合、キャッシュのサイズが十分ではないことを意味します。最大エントリ数を増やすことを検討してください。

    キャッシュ内のエントリ数が、許可されている最大エントリ数と比較して非常に少ない場合、仮想サーバー固有のキャッシュ・ルールの定義が絞り込まれすぎているため、レスポンスがキャッシュされていない可能性があります。

  • キャッシュ可能なオブジェクトの最大サイズ

    システム・リソースを一定に保つために、オブジェクトが別のキャッシュ・ルールを満たしていても、キャッシュするオブジェクトのサイズを制限することができます。

    キャッシュ・オブジェクトの最大サイズより大きいオブジェクトが頻繁にリクエストされる場合は、制限サイズを大きくすることを検討してください。

特定の仮想サーバーのキャッシュ・ルールでは、次のパラメータを指定できます。

  • キャッシュ可能なオブジェクトの最小サイズおよび最大サイズ

  • キャッシュ検証チェック間の最小間隔および最大間隔

  • キャッシュできる問合せ文字列内の最大文字数

  • キャッシュする前にコンテンツを圧縮するかどうか

  • HTTPSレスポンスをキャッシュするかどうか

14.7.4 キャッシュ・パラメータの構成

管理コンソールまたはCLIのいずれかを使用して、キャッシュ設定を構成できます。

管理コンソールを使用したキャッシュ設定の構成

管理コンソールを使用してキャッシュ設定を構成するには、次の操作を行います。

  1. 2.3.2項「管理コンソールへのアクセス」の説明に従って、管理コンソールにログインします。

  2. ページの左上隅にある「構成」ボタンをクリックします。

    使用可能な構成のリストが表示されます。

  3. 変更する構成を選択します。

  4. ナビゲーション・ペインで、「詳細設定」を選択します。

    「詳細設定」ページが表示されます。

  5. ページの「キャッシュ」セクションに移動します。

  6. 変更するキャッシュ・パラメータを指定します。

    画面上のヘルプおよびプロンプトがすべてのパラメータに提供されています。

    フィールドの値を変更する、または変更したテキスト・フィールドからタブアウトすると、ページの右上隅にある「保存」ボタンが有効になります。

    「リセット」ボタンをクリックすることで、いつでも変更を破棄できます。

  7. 必要な変更を行った後、「保存」をクリックします。

    • 更新された構成が保存されたことを確認するメッセージが、「コンソール・メッセージ」ペインに表示されます。

    • さらに、「デプロイメント保留中」メッセージが、メイン・ペインの上部に表示されます。4.3項「構成のデプロイ」の説明に従い、「変更のデプロイ」をクリックして更新された構成を即座にデプロイすることも、さらに変更を行いその後でデプロイすることもできます。

管理コンソールを使用した仮想サーバー固有のキャッシュ・ルールの構成

管理コンソールを使用して仮想サーバー固有のキャッシュ・ルールを作成するには、次の操作を行います。

  1. 2.3.2項「管理コンソールへのアクセス」の説明に従って、管理コンソールにログインします。

  2. ページの左上隅にある「構成」ボタンをクリックします。

    使用可能な構成のリストが表示されます。

  3. 仮想サーバー固有のキャッシュ・ルールを作成する構成を選択します。

  4. ナビゲーション・ペインで、「仮想サーバー」を展開し、キャッシュ・ルールを作成する仮想サーバーの名前を展開して、「キャッシュ」を選択します。

    「キャッシュ」ページが表示されます。仮想サーバーに現在定義されているキャッシュ・ルールがリストされ、そのキャッシュ・ルールが有効化されているかどうかが示されます。

    キャッシュ・ルールの作成

    1. 「新規キャッシュ・ルール」をクリックします。

      「新規キャッシュ・ルール」ダイアログ・ボックスが表示されます。

      「名前」フィールドで、新規キャッシュ・ルールの名前を入力します。

      「条件」フィールドで、ルールが適用される条件を指定します。条件式の作成の詳細は、「条件」フィールドの近くにあるヘルプ・ボタンをクリックするか、『Oracle Traffic Director構成ファイル・リファレンス』の変数、式および文字列の補間の使用に関する項を参照してください。


      注意:

      このキャッシュ・ルールが仮想サーバーに対する最初のキャッシュ・ルールの場合、「新規キャッシュ・ルール」ダイアログ・ボックスに、ルールをすべてのリクエストに適用するか、条件を満たすリクエストにのみ適用するかを選択するオプションが表示されます。条件を指定するように選択する場合、条件を入力するテキスト・フィールドが有効になります。


    2. キャッシュ・ルールの作成をクリックします。

      作成したキャッシュ・ルールが「キャッシュ」ページに表示されます。

      さらに、「デプロイメント保留中」メッセージが、メイン・ペインの上部に表示されます。4.3項「構成のデプロイ」の説明に従い、「変更のデプロイ」をクリックして更新された構成を即座にデプロイすることも、さらに変更を行いその後でデプロイすることもできます。

    キャッシュ・ルールの編集

    キャッシュ・ルールを有効化または無効化する、あるいはルールの設定を変更するには、次の操作を行います。

    1. 編集するキャッシュ・ルールの「名前」をクリックします。

      「キャッシュ・ルールの編集」ダイアログ・ボックスが表示されます。

    2. 変更するパラメータを指定します。

      画面上のヘルプおよびプロンプトがすべてのパラメータに提供されています。

      条件式の作成の詳細は、「条件」フィールドの近くにあるヘルプ・ボタンをクリックするか、『Oracle Traffic Director構成ファイル・リファレンス』の変数、式および文字列の補間の使用に関する項を参照してください。

      フィールドの値を変更する、または変更したテキスト・フィールドからタブアウトすると、ページの右上隅にある「保存」ボタンが有効になります。

      「リセット」ボタンをクリックすることで、いつでも変更を破棄できます。

    3. 必要な変更を行った後、「保存」をクリックします。

      更新された構成が保存されたことを確認するメッセージが、「コンソール・メッセージ」ペインに表示されます。

      さらに、「デプロイメント保留中」メッセージが、メイン・ペインの上部に表示されます。4.3項「構成のデプロイ」の説明に従い、「変更のデプロイ」をクリックして更新された構成を即座にデプロイすることも、さらに変更を行いその後でデプロイすることもできます。

    キャッシュ・ルールの削除

    キャッシュ・ルールを削除するには、「削除」ボタンをクリックします。確認プロンプトで、「OK」です。

CLIを使用したキャッシュ設定の構成

  • 構成のキャッシュ・プロパティを変更するには、set-cache-propコマンドを実行します。

    たとえば、次のコマンドでは、最大キャッシュ・ヒープ領域が20MBに変更されます。

    tadm> set-cache-prop --config=soa max-heap-space=20971520
    OTD-70201 Command 'set-cache-prop' ran successfully.
    
  • 仮想サーバーのキャッシュ・ルールを作成するには、create-cache-ruleコマンドを実行します。

    たとえば、次のコマンドでは、構成soaの仮想サーバーsoa.example.comに対してcache-rule-imagesという名前のルールが作成され、式$uri='^/images'がtrueと評価されるリクエストがキャッシュされます。

    tadm> create-cache-rule --condition="\$uri='^/images'" --config=soa --vs=soa.example.com cache-rule-images
    OTD-70201 Command 'create-cache-rule' ran successfully.
    

    --conditionオプションの値は、正規表現にする必要があることに注意してください。条件式の作成の詳細は、『Oracle Traffic Director構成ファイル・リファレンス』の変数、式および文字列の補間の使用に関する項を参照してください。

  • キャッシュ・ルールを変更するには、set-cache-rule-propコマンドを実行します。

    たとえば、次のコマンドでは、キャッシュ・ルールcache-rule-imagesに対してコンテンツの圧縮が無効化されます。

    tadm> set-cache-rule-prop --config=soa --vs=soa.example.com --rule=cache-rule-images compression=false
    OTD-70201 Command 'set-cache-rule-prop' ran successfully.
    
  • キャッシュ・ルールを削除するには、次の例に示すように、delete-cache-ruleコマンドを実行します。

    tadm> delete-cache-rule --config=soa --vs=soa.example.com cache-rule-images
    OTD-70201 Command 'delete-cache-rule' ran successfully.
    

更新された構成を有効にするには、deploy-configコマンドを使用して、構成をOracle Traffic Directorインスタンスにデプロイする必要があります。

この項で説明されたCLIコマンドの詳細は、『Oracle Traffic Directorコマンドライン・リファレンス』を参照するか、--helpオプションを付けてコマンドを実行してください。