キャッシュは、キャッシュ・ヒット率が高い場合、つまり比較的大量のリクエストがオリジン・サーバーに送信されるのではなく、キャッシュから提供される場合、クライアントへのレスポンス時間を短くできるという点で有効と考えられます。キャッシュ・ヒット率を高くするには、オリジン・サーバーからのキャッシュ可能なレスポンスを格納するために十分なメモリーが必要であり、キャッシュ内のエントリを定期的に検証する必要があります。
注意: 動的なコンテンツは一般的にキャッシュできません。このため、オリジン・サーバーによって提供されるアプリケーションまたはコンテンツが、ほとんど動的コンテンツで構成されている場合、キャッシュ・ヒット率は低くなる傾向があります。この場合、キャッシュを有効化してチューニングしても、パフォーマンスは大幅に向上しない可能性があります。 |
キャッシュ・ヒット率を向上させるために、次のキャッシュ・パラメータをチューニングできます。
キャッシュ・エントリ置換メソッド
キャッシュが一杯になると、つまりエントリ数が最大エントリ制限に到達する、またはキャッシュ・ヒープ・サイズが最大キャッシュ・ヒープ領域に到達すると、その後のキャッシュ・エントリは、既存のエントリが削除された場合のみ格納できます。キャッシュ・エントリの置換メソッドは、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レスポンスをキャッシュするかどうか