ヘッダーをスキップ

Oracle Application Server 概要
10gリリース2(10.1.2)
B15619-02
目次
目次
索引
索引

戻る 次へ

9
パフォーマンスとキャッシュ

この章では、Oracle Application Serverのパフォーマンスおよびキャッシュの機能と利点の概要について説明します。この章の項目は次のとおりです。

パフォーマンスの概要

Webサイトの設計や構築をやりなおさずに、Webサイトのパフォーマンスを向上させ、アプリケーションの速度を上げることは各企業に共通の目標です。Oracle Application Serverのパフォーマンスを最大化するには、すべてのコンポーネントを監視、分析およびチューニングする必要があります。アプリケーションを配置する際は、パフォーマンスを考慮に入れる必要があります。つまり、アプリケーションの分析および設計中にパフォーマンスの要件を予測し、最適なパフォーマンスを得る上でのコストと利点のバランスをうまく保つ必要があります。

アプリケーションの全体的なパフォーマンスは次の要因によって決定されます。

次の概念は、パフォーマンスを理解する上で基本となるものです。

パフォーマンス方法論

システムの最適な有効性を達成するには、計画、監視および定期的な調整が必要です。パフォーマンス・チューニングの第一歩は、達成する必要のある目標を設定し、使用可能なテクノロジを効果的に利用してアプリケーションを設計することです。システムを実装した後は、定期的にシステムを監視し、調整する必要があります。

パフォーマンス目標

システムの設計または保守のどちらを行っているとしても、特定のパフォーマンス目標を設定し、何をどのようにして最適化するかを見極めることが大切です。特定の目標を設定せずにパラメータを変更すると、システムのチューニングに無駄な時間を費やすだけで、良好な結果が伴わないことがあります。

特定のパフォーマンス目標として、たとえば注文入力のレスポンス時間を3秒以内にするなどを掲げることができます。アプリケーションがこの目標を満たさない場合は、その原因を識別し、補正する必要があります。開発中は、アプリケーションをテストして、設定したパフォーマンス目標が満たされているかどうかを判断します。

ユーザーの期待

アプリケーション開発者、データベース管理者およびシステム管理者は、ユーザーが期待する、適切なパフォーマンス目標を注意深く設定する必要があります。システムで特に複雑な操作を実行する場合、レスポンス時間は単純な操作を実行するときと比較して遅くなることがあります。ユーザーは、どちらの操作により長い時間がかかるかを通知される必要があります。

パフォーマンス評価

パフォーマンスの目標が明確に定義されていれば、パフォーマンスのチューニングが効果を発揮しているかどうかを難なく判断できます。パフォーマンス・チューニングの成功は、ユーザー・コミュニティとの間で設定した機能上の目的、基準を満たしているかどうかを測定する管理者の能力、さらにパフォーマンスに関する問題を解決するための補正アクションを取る管理者の能力に左右されます。

パフォーマンスを継続的に監視することで、システムを最適にチューニングし、保持することができます。ここで、アプリケーションのパフォーマンスの履歴を記録しておくと、パフォーマンスを比較するのに役立ちます。ある範囲の負荷に対して実際に消費されたリソースに関するデータがあれば、客観的なスケーラビリティ調査を実施し、その結果から、予期される負荷量に対するリソース要件を予測することができます。

パフォーマンスの改善

アプリケーションのパフォーマンスを改善するには、パフォーマンスに影響する様々な要素を考慮し、必要に応じてシステムを変更する必要があります。

パフォーマンスを改善するための要素

パフォーマンスは、次のとおり複数の領域にまたがります。

過剰な需要の影響の阻止

過剰な需要はレスポンス時間を増やし、スループットを減らします。需要率が達成可能なスループットを超過する場合には、どのリソースが消耗されているかを監視によって判断し、可能であればそのリソースを増加する必要があります。

パフォーマンスの問題を軽減するための調整

パフォーマンスに関する問題は、次の要素を調整することで軽減できます。

通常、チューニングにある程度の犠牲が伴います。ボトルネックを判断した後は、目的の結果を達成するためにその他の領域のパフォーマンスを変更する必要がある場合があります。たとえば、I/Oに問題がある場合には、メモリーまたはディスクを追加購入する必要が生じる場合があります。追加購入が不可能な場合には、システムの同時実行性を制限して目的のパフォーマンスを達成する必要があります。ただし、パフォーマンスの目標を明確に定義している場合には、最も重要な領域が何であるかがはっきりしているため、パフォーマンスを高めるために何を犠牲にするかの判断が容易になります。

キャッシュ・ソリューションの概要

キャッシュは、今日過度に使用されているE-Businessのインフラストラクチャが直面している、コンピュータ処理上および経済上の負荷を軽減するための主要テクノロジの1つです。ほぼすべてのアプリケーションは、コンテンツを求める消費者とコンテンツ・ソース自体の間にあるホストにWebコンテンツをキャッシュすることによってメリットを得ることができます。Webアプリケーションにキャッシュを適用すると、静的および動的なWebページの一部または全体を、ブラウザに近いメモリーに格納できるようになり、Webサイトへのアクセスが遅い問題に対処することができます。

実践的なキャッシュ・ソリューションでは、次のタスクを実行する必要があります。

キャッシュ・ソリューションは、各種の層で使用できます。各ソリューションは、特定の層をターゲットとし、特定の機能をもたらします。ここで、レスポンス時間はアーキテクチャ内の異なる層にアクセスするための時間の累積であることに注意してください。ほとんどの場合、完全なソリューションは、1つ以上のキャッシュ・ソリューションを組み合せることによってもたらされます。キャッシュ・ソリューションには、ブラウザ・キャッシュ、プロキシ・キャッシュ、コンテンツ配信ネットワーク・サービスおよびサーバー・アクセラレータが含まれます。

次の各項では、Oracle Application Server Web Cache、中間層のサーバー・アクセラレータおよびOracle Application Serverのロード・バランシング・コンポーネントについて説明します。

サーバー・アクセラレータの概要

サーバー・アクセラレータは、1つ以上の特定のWebサーバー用にキャッシュおよび圧縮を行うエンジンで、ブラウザ・ユーザーのグループ用に機能するものではありません。サーバー・アクセラレータのキャッシュ(つまりリバース・プロキシ・キャッシュ)は、Webサーバーに対するすべてのリクエストに割り込み、配信されるオブジェクトのコピーをキャッシュします。そして、これらのオブジェクトに対するリクエストを次に受信したときに、これらのオブジェクトを配信します。サーバー・アクセラレータのキャッシュにオブジェクトが格納されるにつれて、リクエストされたコンテンツ自体を多く配信できるようになるため、アプリケーション・サーバーやデータベースの処理リソースが解放され、これらを他のタスクに利用できるようになります。サーバー・アクセラレータによって、コストを削減することもできます。サーバー・アクセラレータは安価なプラットフォームに実装されるので、より高価なバックエンド・コンテンツ生成システムの負荷が緩和されます。

Oracle Application Server Web Cacheの概要

Oracle Application Server Web Cacheは、最新技術による強力なサーバー・アクセラレータおよびロード・バランシング・ソリューションです。OracleAS Web Cacheは、インテリジェント・キャッシュ、ページの組立ておよび圧縮機能を備え、現在市販されている他のWebキャッシュ・ソリューションとの違いを際立たせています。静的オブジェクトのみを扱う従来のプロキシ・サーバーと異なり、OracleAS Web Cacheでは、静的なWebコンテンツと動的なWebコンテンツの両方の配信が高速化され、豊富な機能を持つページに対するレスポンス時間が短縮されています。

OracleAS Web Cacheでは、ネットワーク・エッジでページの組立てを行うためのEdge Side Includes(ESI)もサポートされています。このテクノロジを利用して、OracleAS Web Cacheでは、部分ページ・キャッシュ機能およびキャッシュ可能なページ断片とキャッシュ不可能なページ断片を動的に組み立てる機能が提供されます。このようにして、OracleAS Web Cacheはパーソナライズされた豊富なコンテンツの配信を最適化します。

OracleAS Web Cacheは、アプリケーション・サーバーのファームの前やネットワーク・エッジに広く配置されることによって、ロード・バランシング、フェイルオーバー、クラスタリングおよびサージ保護機能をアプリケーション・サーバーに提供します。

Oracle Application Server Web Cacheの配置アーキテクチャ

最も簡単な配置例では、サーバーによって生成されるコンテンツをキャッシュおよび圧縮するために、OracleAS Web Cacheは1つ以上のWebサーバーの前に配置されます。次に、OracleAS Web CacheはそのコンテンツをWebブラウザに配信します。Webブラウザは、Webサイトにアクセスするときに、Webサイトの仮想サーバーとして動作するOracleAS Web CacheにHTTPまたはHTTPSリクエストを送信し、Oracle Application Serverファームとデータベースの存在を隠します。リクエストされたコンテンツが変更されると、OracleAS Web Cacheは各サーバーの相対的な負荷に従って新しいコンテンツをOracle Application Serverから取得します。

OracleAS Web Cacheは、元のOracle Application Serverと同一のホスト(共用)または独自のノード(専用)に配置できます。図9-1に、専用のOracleAS Web Cacheの配置を示します。

図9-1    キャッシュのアーキテクチャ


画像の説明

OracleAS Web Cacheはメモリーを消費するので、キャッシュとOracle Application Serverがリソースの競合を起こさない場合にのみ共用が可能です。

専用で配置する方が共用で配置するより好ましい場合が多くあります。専用で配置する場合、他のサーバー・プロセスとリソースが競合するリスクがありません。また、OracleAS Web CacheはPC環境でも十分機能するので、専用で配置した場合にハードウェアの出費がかかることはありません。大容量のWebサイトでシングル・ポイント障害の発生を回避するには、OracleAS Web Cacheを実行する2つ以上のホストをサード・パーティ製ネットワーク・ロード・バランシング・デバイスの後方に配置します。

キャッシュ階層: OracleAS Web Cacheでは、顧客が簡単にContent Delivery Networks(CDN)を作成できるようにするための階層キャッシュ機能を提供します。数多くのWebベースのアプリケーションでは、戦略的に配置された各ロケーションにWebサイトをミラー化しています。キャッシュはミラー化に代わる低コストの手段で、ローカル市場への配信に使用すると、市場へのレスポンス時間が短縮され、コンテンツ・プロバイダにとっても、帯域幅と格納領域にかかるコストが削減されます。さらに、分散キャッシュ階層では、集中キャッシュでローカルのキャッシュを確認できます。その結果、集中キャッシュに送信されるすべてのコンテンツ無効化メッセージは、これらのリモート・キャッシュに自動的に伝播されます。この無効化の伝播によって、CDN全体でコンテンツの一貫性が保たれ、キャッシュ階層の管理が簡潔化されます。

異機種環境でのOracleAS Web Cacheの使用: OracleAS Web Cacheは、Oracle Application Serverと統合されたばかりでなく、サード・パーティのアプリケーション・サーバー、データベースおよびコンテンツ管理システムとも互換性があります。

関連項目

『Oracle Application Server Web Cache管理者ガイド』 

Oracle Application Server Web Cacheの機能

Oracle Application Server Web Cacheは、Webベースのアプリケーションを高速化する強力なソリューションです。Oracle Application Server Web Cacheの主な機能は、次の3つのカテゴリに分割されます。

圧縮とキャッシュ

Oracle Application Server Web Cacheでは、圧縮、キャッシュ、ページの組立ておよび無効化テクノロジを使用して、動的に生成されたコンテンツの配信を加速し、低コストのハードウェアをさらに効率よく利用します。

コンテンツの自動圧縮

OracleAS Web Cacheでは、キャッシュ可能なドキュメントとキャッシュ不可能なドキュメントの両方を圧縮するかどうか選択できます。圧縮されたドキュメントはサイズが小さくなるので、ラウンドトリップが少なくなってブラウザへの配信が高速になり、全体的な反応時間が削減されます。OracleAS Web Cacheは、テキスト・ファイルを10分の1まで圧縮できます。

静的および動的コンテンツのフルページ・キャッシュ

OracleAS Web Cacheでは、キャッシュ・ルールに従ってドキュメントを保存します。静的なコンテンツを格納する場合と、JavaServer Pages(JSP)などのテクノロジを使用して動的に生成されたコンテンツを格納する場合には、それぞれ異なるルールが存在します。動的なコンテンツのキャッシュをサポートすると、OracleAS Web Cacheでは同じURLを持つドキュメントの複数バージョンを認識し、セッション認識ページおよびパーソナライズされた情報を含むページをキャッシュできるようになります。動的なEdge Side Includes(ESI)断片をパーソナライズされた方法でコンテンツを組み立てる必要があるページにも、ルールが存在します。

部分ページ・キャッシュとパーソナライズされたページの組立て

OracleAS Web Cacheによって、キャッシュ可能なページ断片とキャッシュ不可能なページ断片の両方を動的に組み立てることができます。キャッシュ・プロファイルの異なる断片にページを分割できるようにすることによって、ページを組み立てます。部分ページ・キャッシュにより、さらに多くのHTMLコンテンツをキャッシュし、リクエスト時にOracleAS Web Cacheで組み立てて配信することが可能です。

動的コンテンツを作成するために使用する基本構造は、HTMLの断片を含むテンプレート・ページです。テンプレートは、ページのルック・アンド・フィール要素などの共通要素で構成されています。HTMLの断片は、ページの動的サブセクションに相当します。テンプレート・ページは、エンド・ユーザーがリクエストするURLに関連付けられています。テンプレート・ページでは、Edge Side Includes(ESI)マークアップ言語を使用して、HTMLの断片をフェッチし、それを追加するようOracleAS Web Cacheに指示します。各断片は、独自のキャッシュ・ポリシーを持つ個別のオブジェクトです。ESIは、HTML、XMLおよびあらゆるWebパブリッシング・テクノロジと併用できます。ESIはオープン・スタンダードです。詳細は、http://www.esi.orgを参照してください。

JSPアプリケーションの場合、OC4JがJESIをサポートしています。JESIは、開発者がESIコードをJSP構文で自動生成するために使用する仕様およびカスタムJSPタグ・ライブラリです。JSPの開発者は常にESIを使用できますが、JESIでは、JSPの開発者にとって新しい構文を習得することなく、ページのモジュール性とそのモジュールがキャッシュ可能かどうかを一層簡単に表現する方法が提供されます。さらに、Oracle JDeveloperは、ESI Servletフィルタ拡張機能を備えています。これにより、開発者はESIまたはJESIタグを使用してJSPを作成し、開発環境内でそれらをテストできます。

ワークロードの管理

Oracle Application Server Web Cacheには、アプリケーションの可用性を高め、サービス品質を維持するために、サージ保護、ロード・バランシング、フェイルオーバー、セッション・バインド、キャッシュの一貫性のオプション、クラスタリングなどのワークロード管理機能が備わっています。

サージ保護

OracleAS Web Cacheは、キャッシュ不可能なオブジェクト、失効したオブジェクトまたは消失したオブジェクトに対するリクエストを、アプリケーション・サーバーに渡します。アプリケーション・サーバーでリクエストのオーバーロードを防ぐために、OracleAS Web Cacheはサージ保護機能を備えています。これにより、アプリケーション・サーバーが同時に処理できるリクエスト数に制限を設定できます。この制限数に達すると、後続のリクエストはキューに入れられます。キューがいっぱいになっている場合は、OracleAS Web Cacheによってリクエストが拒否され、リクエストの発信元のWebブラウザに、サイトがビジーであることを示すエラー・ページが送信されます。

Webサーバーのロード・バランシングとフェイルオーバー

ロード・バランシングとフェイルオーバーにより、スケーラビリティ信頼性の向上を図るために、Webサイトを一連のサーバー群で構築することができます。OracleAS Web Cacheは、ロード・バランシング機能を使用して、負荷が最も低いアプリケーション・サーバーにリクエストを送信します。アプリケーション・サーバーを利用できなくなると、OracleAS Web Cacheは自動的にバックエンド・フェイルオーバーを実行します。OracleAS Web Cacheは、他のアプリケーション・サーバーへ負荷を分散し、障害のあるアプリケーション・サーバーがオンラインになるまでそのステータスをポーリングします。障害のあったサーバーが運用を再開すると、OracleAS Web Cacheはそのサーバーを負荷の分散対象に追加します。

また、ロード・バランシングを目的としてOracleAS Web Cacheのみを構成することもできます。この場合は、ハードウェアのロード・バランサを、コンテンツをキャッシュしない1つ以上のキャッシュに置き換えます。

関連項目

『Oracle Application Server Web Cache管理者ガイド』 

セッション・バインド

OracleAS Web Cacheでは、状態を一定期間保持するために、ユーザー・セッションを所定のアプリケーション・サーバーにバインドできます。Webブラウザに送信するHTTPのヘッダーまたは本文にセッション・データを組み込み、そのブラウザによる次回のリクエストにそのデータが強制的に組み込まれるようにすることによって、アプリケーションはユーザー・セッションをバインドします。このデータは、OracleAS Web Cacheを介して、アプリケーション・サーバーとブラウザとの間で転送されます。

キャッシュの無効化と有効期限

OracleAS Web Cacheは、配信しているコンテンツに対してキャッシュが常に有効であるようにするため、無効化機能をサポートしています。管理者や開発者は、OracleAS Web Cacheを実行しているコンピュータに無効化メッセージを送信するか、キャッシュされているドキュメントに有効期限を割り当てることで、キャッシュのコンテンツを無効化できます。

キャッシュの一貫性とパフォーマンス保証

OracleAS Web Cacheは、キャッシュとアプリケーション・サーバーとの間の一貫性を確保するために、次に示すいくつかの機能を備えています。

Oracle Application Server Cluster(Web Cache)

OracleAS Cluster(Web Cache)は、疎結合されたWebキャッシュ・インスタンスの集まりであり、単一の論理キャッシュとして機能します。OracleAS Web Cacheの複数のインスタンスを構成して、OracleAS Cluster(Web Cache)のメンバーとして実行できます。これによって、キャッシュ・ソリューションの可用性とスケーラビリティが向上します。

エンド・ユーザー動作の管理

Oracle Application Server Web Cacheには、エンド・ユーザーのサービス・レベルに貴重な指標をもたらすパフォーマンス監視機能も備わっています。

エンド・ユーザー・パフォーマンスの監視

Oracle Application Server Web Cacheには、エンド・ユーザーのパフォーマンスを監視するためのインスツルメントが含まれています。管理者は、OracleAS Web Cacheを構成して、URLがキャッシュされているかどうかに関係なく、個別のURL、URLセットまたはWebベースのアプリケーション全体に対するエンド・ユーザーのレスポンス時間を測定することができます。各インスツルメント・リクエストに対し、すべてのユーザー動作が記録されます。生の測定値が、OracleAS Web Cacheアクセス・ログに収集されます。

Oracle Application Server Web Cacheの他の機能

次の各項では、Oracle Application Server Web Cacheのその他の重要な機能について説明します。

SSLのサポート

OracleAS Web Cacheは、Oracle Application Serverの一部として、SSLを使用し、SSLアクセラレーション・カードまたはサード・パーティのSSLアクセラレーション・アプライアンスと併用できるように構成できます。OracleAS Web Cacheでは、PKIベースの認証にクライアント側のSSL証明書を必要とするアプリケーションがサポートされています。クライアント側の証明書を必要とするHTTPSリクエストに対し、クライアント・ブラウザはSSLハンドシェイク中に証明書をOracleAS Web Cacheに送信します。キャッシュでは、特殊なHTTPリクエスト・ヘッダーに挿入されているクライアントの証明書情報とともに、Oracle HTTP Serverにリクエストを転送します。Oracle HTTP Serverは、このヘッダーを認識し、ユーザーの資格証明をOracle Application Server Single Sign-Onに渡して認証を受けることができます。OracleAS Web Cacheは、SSLの終了を実行し、mod_ossoを使用するアプリケーションにキャッシュを提供することもできます。

柔軟性の高いマルチバージョンのキャッシュ・ルール

管理者は、ユーザー・エージェントのリクエスト・ヘッダーまたはブラウザのタイプに基づいて、マルチバージョンのキャッシュ・ルールをより細かく制御できるようになりました。以前は、すべてのブラウザに対して1つのバージョンのページをキャッシュするか、ブラウザのそれぞれのタイプとバージョンに対して1つのバージョンをキャッシュするかのどちらかでした。現在では、キャッシュ・ルールをカスタマイズして、1つのページのキャッシュ・バージョンを共有するブラウザのグループを定義することができます。たとえば、Internet Explorerのすべてのバージョンに対して1つのページをキャッシュし、Netscapeのすべてのバージョンに対してもう1つのページをキャッシュし、その他すべてのブラウザに対してさらに別のページをキャッシュできます。

Oracle Process Manager and Notification Server(OPMN)との統合

OPMNでは、Oracle HTTP ServerおよびOC4Jプロセスの管理に加えて、OracleAS Web Cacheのキャッシュ・プロセスおよび管理サーバー・プロセスも管理できるようになりました。これらのプロセスには、起動、停止および自動再起動の操作が含まれます。ただし、スタンドアロンのOracleAS Web Cacheの配置では、OracleAS Web Cacheコントロールとウォッチドッグのプロセス管理ユーティリティが引き続き使用されます。

インラインの無効化と検索キーの無効化

OracleAS Web Cacheは、コンテンツを常に最新に保つための追加の手段として、インラインの無効化メカニズムを備えています。インラインの無効化モデルはOracleAS Web CacheのESIサポートの一部として実装され、オリジナル・サーバーでWeb Cacheに送信するトランザクション・レスポンスに無効化メッセージを含めるための便利な手段を提供します。無効化メッセージをインラインで送信する機能により、無効化メッセージを個別に送信する場合に発生する接続オーバーヘッドを削減できます。

このリリースに追加されたもう1つの無効化機能に、検索キーの無効化があります。以前は、キャッシュされたドキュメントはURLベースのキャッシュ・キーにより識別されていました。キャッシュされているオブジェクトを無効化するために、正確なURLまたは正規表現に一致するURLセットとヘッダーのいずれかを、無効化リクエストに指定する必要がありました。このリリースのOracleAS Web Cacheの無効化機能では、検索キーをサポートするよう拡張されています。現在、キャッシュされているオブジェクトは、URLベースのキーを主キーとする、アプリケーション指定の複数の検索キーに関連付けることができます。URLベースの主キーではなく検索キーに基づく無効化が可能になり、それによって管理者やアプリケーション開発者はさらに容易に無効化機能を使用できるようになります。

追加のキャッシュ・コンポーネント

Webアプリケーション開発者は、アプリケーション・オブジェクトがHTMLまたはXMLの断片ではない状況に遭遇することもあります。たとえば、XML DOMオブジェクトまたはJavaシリアライズ可能オブジェクトを取り扱う必要がある場合です。キャッシュされたコンテンツの再使用または後処理、あるいは中間結果の維持が必要になる場合もあります。Oracle Application Serverでは、アプリケーション・レベルのキャッシュに対応するために2つのコンポーネントを提供しています。

これらの2つのキャッシュは、独立して使用することも、高度なキャッシュ機能を実現するために一緒に使用することもできます。

Java Object Cache

Java Object Cacheは、プロセス、プロセス間およびローカルのディスク上でJavaオブジェクトを管理するために設計された一連のJavaクラスです。Java Object Cacheは、取得または作成コストの高いオブジェクトのローカル・コピーを管理することによって、サーバーのパフォーマンスを改善する強力で柔軟性の高いサービスを提供します。キャッシュできるオブジェクトのタイプや、オブジェクトの元のソースには制限はありません。キャッシュ内の各オブジェクトの管理は、容易にカスタマイズできます。各オブジェクトには、キャッシュへのオブジェクトのロード方法、オブジェクトの格納場所、オブジェクトの無効化方法、オブジェクトの無効化時に通知を受けるユーザーなどを制御するために、オブジェクトに関連付けられている一連の属性があります。オブジェクトは、グループとしても個別でも無効化できます。

Web Object Cache

Web Object CacheはWebアプリケーション・レベルのキャッシュ機能で、Java Webアプリケーション内に埋め込まれ、保守されています。Web Object Cacheは、Webベースおよびオブジェクト・ベースの両方を含むハイブリッド・キャッシュです。Web Object Cacheを使用すると、アプリケーションはAPIコール(サーブレット用)またはカスタム・タグ・ライブラリ(JSP用)を使用して、プログラミングによるキャッシュを実行できます。Web Object Cacheは、通常はWebキャッシュを補う目的で使用されます。デフォルトでは、Web Object CacheはJava Object Cacheをリポジトリとして使用します。


戻る 次へ
Oracle
Copyright © 2002, 2005 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引