Sun Java System Application Server Enterprise Edition 8.2 パフォーマンスチューニングガイド

ORB のチューニング

ORB のパフォーマンスを調整するには、ORB のパラメータと ORB スレッドプールのパラメータを設定します。通常の場合、負荷分散、複数の共有接続、スレッドプール、およびメッセージ分割サイズを活用することで、応答時間を短縮できます。複数の ORB サーバー間でクライアント要求の負荷分散を行い、クライアントとサーバー間での接続数を調整することで、スケーラビリティーを改善できます。

次の表に、チューニング可能な ORB パラメータをまとめます。

表 3–5 チューニング可能な ORB 設定

パス 

ORB モジュール 

サーバー設定 

アプリケーションクライアントからアプリケーションサーバーへの RMI/ IIOP 

通信インフラストラクチャー、スレッドプール 

steady-thread-pool-size、max-thread-pool-size、idle-thread-timeout-in-seconds 

ORB から Application Server への RMI/ IIOP 

通信インフラストラクチャー、スレッドプール 

steady-thread-pool-size、max-thread-pool-size、idle-thread-timeout-in-seconds 

ベンダー ORB からの RMI/ IIOP 

通信インフラストラクチャーの一部、スレッドプール 

steady-thread-pool-size、max-thread-pool-size、idle-thread-timeout-in-seconds 

インプロセス 

スレッドプール 

steady-thread-pool-size、max-thread-pool-size、idle-thread-timeout-in-seconds 

チューニング可能な ORB パラメータ

管理コンソールを使って次の ORB パラメータをチューニングします。

ORB スレッドプールのパラメータ

ORB スレッドプールには、1 つのタスクキューと一連のスレッドが含まれます。タスクまたはジョブはこのタスクキューに挿入されますが、空き状態のスレッドがこのキューからタスクを取り出し、処理を実行します。タスクキューが常に空になるようなスレッドプールサイズを設定しないでください。大規模アプリケーションの場合、最大プールサイズが現在のタスクキューのサイズの 10 倍になるのが普通です。

Application Server は ORB スレッドプールを次の目的で使用します。

したがって、ORB が RMI/ IIOP 経由のリモート呼び出し用として使用されない場合でも、EJB のプールおよびキャッシュのクリーンアップが円滑に進むように、このスレッドプールのサイズを設定してください。

ORB スレッドプールの属性を設定するには、「設定」>「config-name」>「スレッドプール」>「thread-pool-ID」を選択します。ここで、thread-pool-ID は ORB 用に選択されたスレッドプールの ID です。スレッドプールでパフォーマンスに影響を与える属性は、次のとおりです。

特に、最大プールサイズがパフォーマンス上、重要になります。詳細については、「スレッドプールのサイジング」を参照してください。

クライアント ORB のプロパティー

クライアントプログラムを起動するときに、次のプロパティーをコマンド行引数として指定します。そうするには、Java VM の起動時に次の構文を使用します。

-Dproperty=value

クライアント ORB とサーバー ORB 間の接続の制御

クライアントでデフォルトの JDK ORB を使用する場合、クライアント ORB からアプリケーションサーバー ORB への接続が、初期コンテキストが作成されるたびに確立されます。同じプロセスからオープンされる接続のプーリングまたは共有を行うには、クライアント ORB の設定に次のコードを追加します。

-Djava.naming.factory.initial=com.sun.appserv.naming.S1ASCtxFactory

複数の接続の使用


注 –

Sun Java System Application Server version 8.x では、プロパティー com.sun.appserv.iiop.orbconnections はサポートされていません。


コンテキストファクトリ (com.sun.appserv.naming.S1ASCtxFactory) を使用する場合、プロパティー com.sun.appserv.iiop.orbconnections を使用することで、クライアント ORB からサーバーに対してオープンする接続の数を指定できます。

デフォルト値は 1 です。複数の接続を使用すると、ネットワーク集約型アプリケーションのスループットが改善される可能性があります。クライアント ORB 上でこの設定変更を指定するには、次の jvm オプションを追加します。

-Djava.naming.factory.initial=com.sun.appserv.naming.S1ASCtxFactory
-Dcom.sun.appserv.iiop.orbconnections=value

負荷分散

クラスタ内の複数のアプリケーションサーバーインスタンス向けに RMI/IIOP を設定する方法については、『Sun Java System Application Server Enterprise Edition 8.2 高可用性 (HA) 管理ガイド』の第 11 章「RMI-IIOP 負荷分散とフェイルオーバー」を参照してください。

クライアント ORB の負荷分散や接続数を調整する場合、サーバー ORB 上でオープンされる接続の数を考慮してください。小さい接続数から始め、その数を増やしながら何らかのパフォーマンス改善が見られるか監視します。サーバーへの 1 つの接続は、その接続からアクティブに読み取る 1 つの ORB スレッドへと変換されます (これらのスレッドはプールには格納されず、接続の存続期間中に一時的に存在する)。