Skip to main content

プール・サイズとアクター・プール・サイズ

[プールサイズ] 設定と [アクター・プール・サイズ] 設定に関する概念情報と参照情報を提供します。

概要

プロダクションのアクター・プール・サイズおよび各ビジネス・ホストのプール・サイズの選択により、そのプロダクションでどのタイプの作業を実行できるか、およびその作業で使用できるジョブの数が決まります。これらの数値は、プロダクション設計の基本的な要素であり、プロダクションの導入が済んで実稼働に移った後で調整が必要になる数値ではありません。

プール・サイズを使用して先入れ先出し (FIFO) 処理を強制できますが、別のオプションも利用できます。"先入れ先出し (FIFO) 処理の維持" を参照してください。

プール・サイズ

ビジネス・サービス、ビジネス・プロセス、またはビジネス・オペレーションでは、それぞれ専用に、割り当てられたジョブのプライベート・プールを設定できます。管理ポータルでこのプールのサイズを構成できます ([プールサイズ] 設定)。[プールサイズ] の設定は、CPU コアの数と同じに設定することをお勧めします。ビジネス・ホストで待機またはアイドル状態の時間が長い場合は、この値を大きくすることでパフォーマンスを改善できる可能性があります。ただし、[プールサイズ] の値が CPU コアの数より大きいと、作業負荷が急激に増加した場合に、問題が発生します。この場合、オペレーティング・システムは各プロセスにメモリを割り当て、スワップ・アクティビティが増大し、たいていは OOM Killer が介入して、InterSystems IRIS 自体を含め、プロセスを終了させます。

プール・サイズをゼロにする

InterSystems IRIS では、アダプタ不要型ビジネス・サービスについては、プール・サイズを 0 にします。これは、受信アダプタによる通常の方法で要求を受け取るビジネス・サービスではなく、InterSystems IRIS の外部から直接呼び出されるビジネス・サービスです。アダプタ不要型ビジネス・サービスは、InterSystems IRIS 言語バインディング、CSP ページ、SOAP、またはオペレーティング・システム・レベルから呼び出されるルーチンを介して呼び出すことができます。詳細は、"ビジネス・サービスの直接呼び出し" を参照してください。

ビジネス・オペレーションがキュー内ではなくプロセス内で実行されるように設定した場合は、そのビジネス・オペレーションのバックグラウンド・ジョブやメッセージ・キューは自動的に作成されません。代わりに、要求がこのビジネス・オペレーションに送信されるたびに、呼び出し側のジョブ内でこのビジネス・オペレーションがプロダクションによってインスタンス化されて、そのメソッドもそのジョブ内で呼び出されます。そのため、ジョブ・プールは必要なく、ビジネス・オペレーションの [プールサイズ] を 0 に設定する必要があります。

他のすべてのタイプのビジネス・サービスまたはビジネス・オペレーションの場合、プール・サイズを 0 に設定すると、ビジネス・ホストは実行されません。

アクター・プール・サイズ

ビジネス・プロセスでは、他のタイプのビジネス・ホストと異なり、パブリック・プール内のジョブを共有できます。このプールは、アクター・プールまたは Ens.Actor と呼ばれます。プロダクションの [アクター・プール・サイズ] を構成できます。プロダクション全体のアクター・プールに含まれるアクターは、特定のビジネス・プロセスとの関係を持たず、またそれらのプロセスで事前に認識されていることもありません。プライベート・プール・サイズが 0 のビジネス・プロセスでは、パブリック・アクター・プールにあるジョブを使用できます。

ビジネス・プロセスで独自のプライベート・プールまたはパブリック・プールを使用するかどうかは、プロダクションのニーズによって決まります。プライベートのプール・サイズに 0 以外の値を指定すると、ビジネス・プロセスではプライベート・プールにあるジョブのみを使用するようになります。ビジネス・プロセスでアクター・プールのジョブを使用する場合は、そのプライベートのプール・サイズを 0 に設定する必要があります。既定のプロダクション構成では、各ビジネス・ホストのプライベート・プールでジョブを 1 つ、プロダクション全体のアクター・プールでジョブを 2 つ使用できます。つまり、ビジネス・プロセスでアクター・プールを共有する場合は、自動的には共有されることはないので、ビジネス・プロセスごとにプール・サイズを 0 に設定する必要があります。

ビジネス・プロセスを無効にした場合、結果はそのプライベートのプール・サイズの構成設定によって異なります。

  • ビジネス・プロセスの [プールサイズ] > 0 :

    このビジネス・プロセスは、プライベート・プールからのジョブのみを使用します。ビジネス・プロセスの構成ページにある [有効] チェックボックスのチェックを外して、このプロセスのみを無効にできます。

  • ビジネス・プロセスの [プールサイズ] = 0 :

    プール・サイズが 0 のビジネス・プロセスを無効にすることはできません。これにより、共有アクター・プールを使用しているすべてのビジネス・プロセスが停止されるためです。ビジネス・プロセスを無効にする場合は、まずプール・サイズを > 0 に設定し、そのビジネス・プロセスが専用のキューを使用するようにします。共有アクター・プールを使用してすべてのビジネス・プロセスを停止する場合は、[プロダクション設定] タブの [アクター・プール・サイズ] を 0 に設定します。

ビジネス・プロセスのプール・サイズ変更の影響

ビジネス・ホストの [プールサイズ] が 1 以上の場合、そのビジネス・ホストのキューには、ビジネス・ホストと同じ名前が付けられます。ビジネス・プロセスの [プールサイズ] の設定を 0 に変更すると、ビジネス・プロセスは共有キュー Ens.ActorOpens in a new tab を使用するようになります。キューを見慣れているユーザの場合、これは混乱を招く可能性があります。

考慮すべき事柄とトレードオフ

プール・サイズを 1 にして FIFO 処理を強制する場合を除き、低速実行されるビジネス・プロセスも含まれているプロダクション内の高速実行されるビジネス・プロセスに対しては、プライベート・プールを 1 以上のサイズに設定すると有用な場合があります。高速のビジネス・プロセスには、パブリック・アクター・キューで低速のビジネス・プロセスの要求列の後に要求がスタックしないように、プライベート・プールを持たせます。

プロダクションの各ビジネス・プロセスにプライベート・プールがある場合は、プロダクションのアクター・プール・サイズを 0 に設定できます。一方、パブリック・アクター・プールを使用するビジネス・プロセスが多数存在するプロダクションの場合、プロダクションのアクター・プール・サイズをデフォルトの 2 よりも大きな値に変更すると、多数のビジネス・プロセスを実行したときにボトルネックの発生を回避できます。一般的には、最大値として、アクター・プール・サイズには InterSystems IRIS サーバの CPU の数と同じ値を設定します。これよりも大きな数を設定できますが、どのような場合でも、同時に実行できるジョブの数は CPU の数が上限となります。

関連項目

FeedbackOpens in a new tab