データフローのプール サイズ

データフローのプール サイズは、各サービス データフローが 1 度に実行できるインスタンス数を制御します。プール サイズを大きくすることによってある程度までパフォーマンスを上げることができますが、同時に実行している各サービス データフローの複数のインスタンスを処理するためのプロセッサやメモリ リソースがサーバーにない場合は、プール サイズを大きくするとパフォーマンスが低下する恐れがあります。プロセッサやメモリ リソースが限界まで使用されている場合は、各サービス データフローの同時インスタンス数を制限するデータフローのプール サイズを小さくした方が、全体的にはより好ましいパフォーマンスが得られる可能性があります。

システムに対する適切なプール サイズを見つける際には、データフローのプール サイズによって制限されるのが、同時に実行するサービス データフローの総数ではなく、各サービス データフローのインスタンス数であることに注意してください。例えば、デフォルト設定である 8 は、各サービス データフローが 8 個のインスタンスを 1 度に実行可能であることを意味します。2 つのサービス データフローがそれぞれ最大数である 8 個の同時インスタンスを利用する場合、システム上で同時に実行するサービス データフローのインスタンス総数は 16 となります。

注: データフローのプール サイズは、ジョブではなく、サービスのパフォーマンスのみに影響を与えます。

データフローのプール サイズを設定するには

  1. JMX コンソールのパフォーマンス モニターを有効にします。詳細については、「 JMX コンソールによるパフォーマンスのモニタリング」を参照してください。
  2. Web サービスまたは API を介して、サービスに対する複数の同時要求を送信します。
  3. JMX コンソールで、ServiceRuntimeManager.borrow.DataflowName に表示される時間に注目してください。これは、サービス要求が実行前に、プール内の空きを待つ時間を示します。時間はミリ秒単位で表示されます。
  4. 次のファイルを開きます。

    SpectrumLocation\server\app\conf\dataflowpool-pool-sizes.properties

  5. パフォーマンスが向上すると思う値に、プール サイズを増減します。デフォルトのプール サイズは 8 です。
    • ServiceRuntimeManager.borrow.DataflowName に表示される待ち時間が長い場合は、データフローのプール サイズを大きくして、サービス要求が実行を待機する時間を短くすることを検討してください。あるいは、要求を抑えてサーバー リソースに過度に負荷をかけないようにするために、待ち時間を長くとることもできます。
    • ServiceRuntimeManager.borrow.DataflowName に表示される待ち時間が長くなく、パフォーマンスが低い場合は、多数の同時サービス データフローを処理するためのプロセッサやメモリ リソースがサーバーにないことを表している可能性があります。データフローのプール サイズを小さくして、要求を抑えることを検討してください。
  6. ファイルを保存して閉じます。
  7. 複数の同時要求を再度送信し、JMX コンソールで ServiceRuntimeManager.borrow.DataflowName に表示される待ち時間を確認します。
  8. 最適な設定が得られるまで、他のプール サイズも試します。