ローカル実行時インスタンスの設定

データフローの各ステージはそれぞれのスレッドで非同期に動作し、他のステージから独立しています。このため、データフロー内の複数ステージが並列処理され、1 つのステージに対して複数の実行時インスタンスを利用することができます。これは、データの処理時間が異なるステージで構成されるデータフローで役に立ちます。その結果、スレッド間での作業の分配のバランスが悪くなる可能性があります。例えば、次の 2 つのステージで構成されるデータフローを考えてみましょう。



ステージの設定によって、Validate Address ステージが Geocode US Address ステージより速くレコードを処理することがあります。その場合、データフロー実行のある時点で、Validate Address はすべてのレコードを処理していますが、Geocode US Address にはまだ未処理のレコードがあります。このデータフローのパフォーマンスを向上させるには、最も速度の遅いステージ (この場合は Geocode US Address) のパフォーマンスを向上させる必要があります。その方法の 1 つは、ステージの実行時インスタンスを複数指定することです。例えば、実行時インスタンス数を 2 に設定すると、そのステージのインスタンスが 2 つになります。各インスタンスはそれぞれのスレッド内で動作し、レコードの処理に使用することができます。

注: 複数の実行時インスタンスを使用してパフォーマンスが向上するのは、複数のレコードを使用するジョブまたはサービス要求を実行する場合のみです。

以下の手順は、複数の実行時インスタンスを使用するようにステージを設定する方法を示しています。

注: パフォーマンスのチューニング時には、実行時インスタンスを調整する前にデータフローのプール サイズを最適化します。
  1. Enterprise Designer でデータフローを開きます。
  2. 複数の実行時インスタンスを使用するように設定するステージをダブルクリックします。
  3. [実行時] をクリックします。

    例えば、Geocode US Address ステージの [実行時] ボタンは次のようになっています。



    注: すべてのステージで複数の実行時インスタンスを使用できるわけではありません。ステージのウィンドウの下部に [実行時] ボタンがない場合、そのステージでは複数の実行時インスタンスを使用できません。
  4. [ローカル] を選択し、このステージで使用する実行時インスタンスの数を指定します。

    一般的なルールとして、実行時インスタンス数は、少なくともリモート コンポーネントのインスタンス数と等しくなければなりません。リモート コンポーネントの詳細については、『Spectrum™ Technology Platform 管理ガイド』を参照してください。複数の実行時インスタンスを指定するとパフォーマンスが向上しますが、この値を高くしすぎると、システムのリソースに負荷がかかり、パフォーマンスが低下する可能性があります。

  5. [OK] をクリックして [実行時パフォーマンス] ウィンドウを閉じます。さらに [OK] をクリックしてステージを閉じます。