この章では、パーティション化およびバッチ処理を使用してOracle Event Processingアプリケーションのパフォーマンスを向上するための技術について、および高可用性パフォーマンスのチューニングに固有の情報について説明します。
この章の内容は次のとおりです。
アプリケーションのパフォーマンスは、イベント・パーティショナ・チャネルの構成、イベントのバッチ処理、受信Java Message Service (JMS)ストリームのパーティション化によってチューニングできます。
イベント・パーティショナ・チャネル: イベント・パーティショナ・チャネルを構成すると、スケーラビリティを向上させることができます。イベント・パーティショナを使用するようにチャネルを構成した場合、受信イベントが到着するたびにチャネルはリスナーを選択し、各リスナーに各イベントをブロードキャストするのではなく、そのリスナーにイベントをディスパッチし、チャネルのイベントをその出力イベント・シンク全体でパーティション化します。
バッチ処理チャネル: デフォルトでは、チャネルはイベントが到達した時点でイベントを処理します。あるいは、wlevs:channel
属性batching
をtrue
に設定することで、同じタイムスタンプを持ち、同じ問合せからの出力のイベントをまとめてバッチ処理するように構成できます。例は、バッチ処理チャネルを参照してください。
ActiveActiveGroupBeanによるスケーラビリティ。com.oracle.cep.cluster.hagroups.ActiveActiveGroupBean
を使用して、ActiveActiveGroupBean
で作成された通知グループによって、Oracle Event Processingアプリケーションの受信JMSストリームをパーティション化します。詳細は、スケーラブル・アプリケーションを参照してください。
マルチサーバー・ドメインにデプロイするために高可用性アプリケーションを作成するときは、次のパフォーマンス・チューニング・オプションを考慮します。
ホスト構成: 高可用性パフォーマンスを最大限にするために、マルチサーバー・ドメインのすべてのホストが同等の処理能力で構成されており(CPUの数とタイプが類似)、すべてのホストがアプリケーションに必要とされる十分なメモリーとディスクを備えていることを確認してください。
高可用性入力アダプタとサービス品質: Oracle Event Processingの高可用性入力アダプタは、すべての高可用性サービス品質オプションに適用できます。ただし、高可用性入力アダプタはパフォーマンスのオーバーヘッドを増加するため、一部の高可用性サービス品質オプション(シンプル・フェイルオーバーおよびバッファリングを使用するシンプル・フェイルオーバーで説明したものなど)には適しません。イベントからアプリケーション時間を使用している場合、入力アダプタを使用する必要はありません。パフォーマンスの観点からみた場合、通常はイベントからのアプリケーション時間を使用することをお薦めします。
高可用性入力アダプタの構成: プライマリ・サーバーがイベント・メッセージをブロードキャストするために要する時間とセカンダリ・サーバーがこれらのメッセージを処理するために要する時間を短縮するには、batch-size
を増加することを考慮します。プライマリ・サーバーが多数のイベントがあるイベント・メッセージをブロードキャストする前に失敗した場合、batch-size
を増加すると、重複イベントとイベントのミスの可能性が増加します。
ブロードキャスト出力アダプタの構成: プライマリ・サーバーがトリミング・メッセージをブロードキャストするために要する時間と、セカンダリ・サーバーがこれらのメッセージを処理するために要する時間を短縮するには、trimming-interval
を削減します。trimming-interval
が減少すると、新しいプライマリ・サーバーのメモリー内キューが古いプライマリ・サーバーに対して期限切れのためにリカバリ時間が増加する場合があります。
Oracle Coherenceパフォーマンス・チューニング・オプション。高可用性アーキテクチャでOracle Coherenceを構成する場合、次のオプションを考慮します。
失敗する前のハートビートの数を削減するには、Oracle Coherenceハートビート・タイムアウトのマシン頻度を増加します。http://download.oracle.com/docs/cd/E15357_01/coh.360/e15723/tune_perftune.htm
でOracle Coherence開発者ガイドを参照してください。
メッセージングのパフォーマンスを向上するには、シリアライズ用にOracle Coherence Portable Object Format (POF)を実装します。POFは言語に依存しないバイナリ形式であり、容量と時間を効率的に使用するよう設計されています。JavaシリアライズのかわりにPOFを使用すると、パフォーマンスが大幅に向上します。