Interstage Application Server OLTPサーバ運用ガイド |
目次
索引
![]() ![]() |
第2章 OLTPサーバの設計 | > 2.1 ワークユニットの設計 | > 2.1.1 ワークユニットを利用したアプリケーションの実行環境 |
複数クライアントから同一アプリケーション(オブジェクト)に対して要求が出された場合に、すべての要求分のアプリケーションを起動してしまうと、サーバの負荷が大きくなってしまいます。
このような場合に、キュー制御で負荷を平準化させることができます。
クライアントからの要求は、該当するアプリケーションの待ち行列であるキューに接続(キューイング)され、キューイングされた要求は、アプリケーションにより順に処理されます。
キューの単位はアプリケーション種別により異なります。
インプリメンテーションリポジトリで定義されているインプリメンテーション単位にキューが作成されます。
キューはインプリメンテーションリポジトリの単位に存在し、インタフェースへの要求は該当インプリメンテーションリポジトリ単位のキューに接続されます。そのため、インプリメンテーションリポジトリで定義するアプリケーションに複数のインタフェースが含まれる場合、複数のインタフェースが1つのキューを共有します。
ワークユニット定義に設定したEJBアプリケーション単位にキューが作成されます。
ワークユニット定義に設定したオブジェクト単位にキューが作成されます。
以下に、キュー制御の運用イメージを示します。
アプリケーションがプロセス多重度化されている場合、要求の各プロセスへの振り分け方式は、LRU(Lease Recentry Used)方式を採用しています。これは不要なプロセスでの資源の消費を極力抑えるためです。CORBAアプリケーションおよびトランザクションアプリケーションの場合、指定により、ラウンドロビン方式も指定が可能です。振り分け方式については、ワークユニット定義で指定します。
ラウンドロビン方式の場合、できるだけ多重化されたプロセスを平均して使用することができます。ただし、ラウンドロビン方式の場合、その時点で要求受信可能な状態であるプロセスに対してラウンドロビン方式で振り分けを行うため、完全に均等に振り分けられるわけではありません。
また、トランザクションアプリケーションの場合、プロセスバインド機能を使用する場合は、ラウンドロビン方式を使用します。ラウンドロビン方式に設定することにより、セション開始要求が各プロセスに均等に割り振られ、1プロセスにセションが集中することによる性能劣化を防止することができます。プロセスバインド機能については、“アプリケーション作成ガイド(コンポーネントトランザクションサービス編)”の“プロセスバインド機能を使用したトランザクションアプリケーションの作成”を参照してください。
プロセスバインド機能を使用しない場合は、LRU方式(デフォルト)を使用します。ただし、クライアントからの要求メッセージをサーバアプリケーションプロセスに均等に割り振りたい場合は、ラウンドロビン方式を使用してください。
なお、LRU方式とラウンドロビン方式では以下の違いがあります。
LRU方式では、最後に動作したプロセスに対して要求メッセージを割り当て、ラウンドロビン方式では要求待ちのプロセスのなかで最初に動作したプロセスに対して要求を割り当てます。したがって、LRU方式の方が割り当てられたプロセスがメモリ上にロードされている可能性が高く、ラウンドロビン方式では割り当てたプロセスがスワップアウトされている可能性があります。そのためLRU方式の方が疎通性能がよい場合があります。
目次
索引
![]() ![]() |