ODR は、SIP および HTTP トラフィック用のインテリジェントなルーターであり、
アプリケーション・サーバーと Web サーバーとの間を仲介します。
ODR の性能に影響する多くの要因があり、使用する ODR から最適のパフォーマンスを引き出すには調整が
必要になる場合があります。
始める前に
- Java™ 仮想マシンを調整します。
詳しくは、IBM® Java 仮想マシンの調整に関する説明を参照してください。
- *=info を除くすべてのトレース情報を
削除します。このタイプのトレースは ODR のパフォーマンスに影響を与えるためです。トレース情報を変更するには、以下のステップを実行します。
- を選択します。
- *=info のみが指定されていることを確認します。
- ODR は CPU またはメモリーの使用量による制約を受けることがあってはなりません。
したがって、サーバーが仮想化されている環境に ODR をインストールするときには、ODR が専用プロセッサー・モードで実行される仮想マシンまたは LPAR を構成するか、または ODR の実行時に十分な量の CPU リソースと専用メモリーが ODR に確実に割り当てられるモードで構成してください。
- Binary Trace Facility (BTF) がパフォーマンスに与える影響は最小限であるため、有効なままにしておいてかまいません。
このタスクについて
ほとんどのユーザー、ほとんどの時間について、ODR のデフォルト設定は十分に
機能します。インストール済み環境によっては、最大のパフォーマンスを得るため、
以下の一部またはすべてのステップを実行する必要があります。
以下のステップは重要度の高い順に優先順位付けされています。
手順
- JVM 設定をチェックします。JVM 設定について詳しくは、
『オンデマンド・ルーターの JVM ヒープ・サイズの変更』を参照してください。
HP および Sun は、ガーベッジ・コレクションを最適化するために追加のチューニング・パラメーターを提供します。Sun や HP などの世代別ガーベッジ・コレクション JVM、または gencon ガーベッジ・コレクションを使用する際の IBM の J9 JVM の場合、ODR に存在する 90MB の基本フット・プリントが含まれるように、永続メモリー領域を約 100MB に設定します。
さらに、16 という SurvivorRation は、若い世代での処理を詳細に最適化します。 HP JVM では、-Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.DevPollSelectorProvider セレクター・プロバイダーを使用し、read: -XX:-ExtraPollBeforeRead の前に余分なポーリングを使用不可にして、パフォーマンスでの改善が生まれるよう NIO を設定できます。
- 接続キープアライブ設定を調整します。詳しくは、『ODR パーシスタント接続のチューニング』を参照してください。
- サーバー当たりの ODR 最大接続数を調整します。詳しくは、『ODR 最大接続数のチューニング』を参照してください。
- 使用中でない場合 ODR キャッシングを使用不可にします。 ODR キャッシングが使用可能になっている場合、ODR は、要求がキャッシュされるかどうかを決定するプロセス全体を実行し、キャッシュ・リポジトリーを調べて要求が前にキャッシュされていたかどうかを判別する必要があります。ODR に対するこの追加オーバーヘッド
によって、ODR でボトルネックが生じる可能性があります。
- アクセス・ロギングが必要ない場合、使用不可にします。 アクセス・ロギングが必要な場合、プロキシー・アクセス・ロギングは要求/応答パスの外部で実行されるため、プロキシー・ロギングが HTTP チャネル/NCSA ロギングに優先します。したがって、要求の応答時間には影響しません。非常に高速のディスクでのアクセス・ロギングは、一般的には 5% のオーバーヘッドを生じますが、そのパーセンテージはディスク・パフォーマンスに大いに依存します。
- インバウンドとアウトバウンドの両方の作業に同じスレッド・グループを使用します。これにより、要求がスレッド間で移動することが避けられ、この移動が原因で生じるオーバーヘッドがなくなります。 ODR には、ほとんどの環境で自己調整する 1 セットのスレッドがあります。キューイング要求およびスロットル要求は、オーバーフロー要求のみを処理するように調整できるデフォルトのスレッド・プールにディスパッチされます。プライマリー・スレッド・グループは、引き続きほとんどの要求を処理します。スレッド・プールに対するすべての要求は、非ブロック呼び出しと非同期であるため、CPU あたりのスレッド数を 2 または 3 以上に設定しないでください。インバウンドとアウトバウンドの両方の作業に同じスレッド・グループを使用するには、以下のステップを実行します。
- を選択します。
- 名前として combineSelectors を指定します。
- 値として 1 を指定します。
- 「OK」をクリックします。
- 「保存」をクリックします。