2.3.1 負荷を分散させた処理
JP1/AJS3では,ジョブやジョブネットの実行先として実行エージェントグループを指定することで,その実行エージェントグループに属する実行エージェント間でジョブの実行を分散させることができます。負荷を分散するパターンは,次のとおりです。
-
複数の実行エージェントに,ジョブを均等に分散して実行する。
-
それぞれの実行エージェントでのジョブ実行数の上限に差を付けて実行する。
-
ある実行エージェントでのジョブ実行数が上限に達したら,別の実行エージェントに分散して実行する。
実行先として実行エージェントグループを指定できるユニットは次のものです。
-
ルートジョブネット
-
ネストジョブネット
-
PCジョブ
-
UNIXジョブ
-
フレキシブルジョブ※
-
HTTP接続ジョブ
-
アクションジョブ
-
カスタムジョブ
- 注※
-
フレキシブルジョブの場合,中継エージェントに実行エージェントグループを指定できます。
負荷分散のパターンごとに,どのように負荷分散処理されるかを説明します。この例では,job1〜job6の六つのジョブを定義したジョブネットの実行エージェントとして,実行エージェントグループAGTGR1を指定しているものとします。
(1) 均等に負荷を分散する場合
均等に負荷を分散させる場合は,実行エージェントグループにグルーピングしているそれぞれの実行エージェントの優先順位およびジョブ実行多重度を同じ値にします。
均等に負荷を分散する場合の例を次の図に示します。
例えば,実行エージェントグループAGTGR1にグルーピングした実行エージェントAGT1,AGT2,AGT3の優先順位を「16」,ジョブ実行多重度を「3」と定義した場合,ジョブの実行順序は次のように決定されます。
-
job1の実行エージェントが決定される。
「ジョブ実行数 / ジョブ実行多重度」は次のとおりです。
-
実行エージェントAGT1:「0 / 3」
-
実行エージェントAGT2:「0 / 3」
-
実行エージェントAGT3:「0 / 3」
すべての実行エージェントのエージェント使用率※が同じであり,それぞれの優先順位も同じであるため,job1の実行エージェントは,実行エージェントグループAGTGR1に定義されているAGT1〜AGT3のどれかに決定します。
この例では,AGT1に決定します。
-
-
job2の実行エージェントが決定される。
job1の実行エージェントがAGT1に決定したため,「ジョブ実行数 / ジョブ実行多重度」は次のようになります。
-
実行エージェントAGT1:「1 / 3」
-
実行エージェントAGT2:「0 / 3」
-
実行エージェントAGT3:「0 / 3」
これによって,実行エージェントAGT2とAGT3のエージェント使用率※が同じになります。それぞれの優先順位は同じであるため,job2の実行エージェントは,実行エージェントグループAGTGR1に定義されているAGT2かAGT3のどちらかに決定します。
この例では,AGT2に決定します。
-
-
job3の実行エージェントが決定される。
job2の実行エージェントがAGT2に決定したため,「ジョブ実行数 / ジョブ実行多重度」は次のようになります。
-
実行エージェントAGT1:「1 / 3」
-
実行エージェントAGT2:「1 / 3」
-
実行エージェントAGT3:「0 / 3」
これによって,実行エージェントAGT3のエージェント使用率※がいちばん低くなります。そのため,job3の実行エージェントはAGT3に決定します。
-
-
job4の実行エージェントが決定される。
job1〜job3の実行エージェントが決定し,「ジョブ実行数 / ジョブ実行多重度」は次のようになります。
-
実行エージェントAGT1:「1 / 3」
-
実行エージェントAGT2:「1 / 3」
-
実行エージェントAGT3:「1 / 3」
再びすべての実行エージェントのエージェント使用率※が同じとなったため,job4の実行エージェントは,実行エージェントグループAGTGR1に定義されているAGT1〜AGT3のどれかに決定します。
この例では,AGT1に決定します。
-
-
job5の実行エージェントが決定される。
job4の実行エージェントがAGT1に決定したため,「ジョブ実行数 / ジョブ実行多重度」は次のようになります。
-
実行エージェントAGT1:「2 / 3」
-
実行エージェントAGT2:「1 / 3」
-
実行エージェントAGT3:「1 / 3」
実行エージェントAGT2とAGT3のエージェント使用率※が同じになったため,job5の実行エージェントは,AGTGR1に定義されているAGT2かAGT3のどちらかに決定します。
この例では,AGT2に決定します。
-
-
job6の実行エージェントが決定される。
job5の実行エージェントがAGT2に決定したため,「ジョブ実行数 / ジョブ実行多重度」は次のようになります。
-
実行エージェントAGT1:「2 / 3」
-
実行エージェントAGT2:「2 / 3」
-
実行エージェントAGT3:「1 / 3」
実行エージェントAGT3のエージェント使用率※がいちばん低くなるため,job6の実行エージェントはAGT3に決定します。
-
- 注※
-
エージェント使用率とは,エージェントホストのジョブの実行多重度に対する実行中のジョブ数の割合です。
実行エージェントグループに複数接続した実行エージェントへのジョブの配信方法およびエージェント使用率の詳細については,マニュアル「JP1/Automatic Job Management System 3 導入ガイド 5.4.9 実行ホスト(エージェントホスト)へのジョブ実行配信」を参照してください。
(2) 実行エージェントでのジョブ実行数の上限に差を付ける場合
それぞれの実行エージェントで実行するジョブ数の上限に差を付けて負荷を分散させる場合は,ジョブ実行多重度にそれぞれの値を設定します。優先順位には同じ値を設定します。
実行エージェントでのジョブ実行数の上限に差を付ける場合の例を次の図に示します。
例えば,実行エージェントグループAGTGR1にグルーピングした実行エージェントAGT1,AGT2,AGT3のジョブ実行多重度を,それぞれ「3」,「2」,「1」と定義した場合,ジョブの実行順序は次のようにして決定されます。
-
job1の実行エージェントが決定される。
「ジョブ実行数 / ジョブ実行多重度」は次のとおりです。
-
実行エージェントAGT1:「0 / 3」
-
実行エージェントAGT2:「0 / 2」
-
実行エージェントAGT3:「0 / 1」
それぞれの優先順位は同じであるため,job1の実行エージェントは,実行エージェントグループAGTGR1に定義されている実行エージェントのうち,次にジョブを実行した場合のエージェント使用率※がいちばん低くなる実行エージェントに決定します。
この例では,AGT1に決定します。
-
-
job2の実行エージェントが決定される。
job1の実行エージェントがAGT1に決定したため,「ジョブ実行数 / ジョブ実行多重度」は次のようになります。
-
実行エージェントAGT1:「1 / 3」
-
実行エージェントAGT2:「0 / 2」
-
実行エージェントAGT3:「0 / 1」
それぞれの優先順位は同じであるため,job2の実行エージェントは,実行エージェントグループAGTGR1に定義されている実行エージェントのうち,次にジョブを実行した場合のエージェント使用率※がいちばん低くなる実行エージェントに決定します。
この例では,AGT2に決定します。
-
-
job3の実行エージェントが決定される。
job2の実行エージェントがAGT2に決定したため,「ジョブ実行数 / ジョブ実行多重度」は次のようになります。
-
実行エージェントAGT1:「1 / 3」
-
実行エージェントAGT2:「1 / 2」
-
実行エージェントAGT3:「0 / 1」
これによって,実行エージェントAGT1のエージェント使用率※がいちばん低くなります。そのため,job3の実行エージェントはAGT1に決定します。
-
-
job4の実行エージェントが決定される。
job3の実行エージェントがAGT1に決定したため,「ジョブ実行数 / ジョブ実行多重度」は次のようになります。
-
実行エージェントAGT1:「2 / 3」
-
実行エージェントAGT2:「1 / 2」
-
実行エージェントAGT3:「0 / 1」
それぞれの優先順位は同じであり,実行エージェントが次にジョブを実行した場合のエージェント使用率※もすべての実行エージェントで同じであるため,job4の実行エージェントは,実行エージェントグループAGTGR1に定義されているAGT1〜AGT3のどれかに決定します。
この例では,AGT1に決定します。
-
-
job5の実行エージェントが決定される。
job4の実行エージェントがAGT1に決定したため,「ジョブ実行数 / ジョブ実行多重度」は次のようになります。
-
実行エージェントAGT1:「3 / 3」
-
実行エージェントAGT2:「1 / 2」
-
実行エージェントAGT3:「0 / 1」
実行エージェントAGT2とAGT3の,次にジョブを実行した場合のエージェント使用率※は同じです。それぞれの優先順位も同じであるため,job5の実行エージェントは,実行エージェントグループAGTGR1に定義されているAGT2かAGT3のどちらかに決定します。
この例では,AGT2に決定します。
-
-
job6の実行エージェントが決定される。
job5の実行エージェントがAGT2に決定したため,「ジョブ実行数 / ジョブ実行多重度」は次のようになります。
-
実行エージェントAGT1:「3 / 3」
-
実行エージェントAGT2:「2 / 2」
-
実行エージェントAGT3:「0 / 1」
実行エージェントAGT1,AGT2のどちらも,ジョブ実行数の上限に達しているため,job6の実行エージェントはAGT3に決定します。
-
- 注※
-
エージェント使用率とは,エージェントホストのジョブの実行多重度に対する実行中のジョブ数の割合です。
実行エージェントグループに複数接続した実行エージェントへのジョブの配信方法およびエージェント使用率の詳細については,マニュアル「JP1/Automatic Job Management System 3 導入ガイド 5.4.9 実行ホスト(エージェントホスト)へのジョブ実行配信」を参照してください。
(3) ジョブ実行数が上限に達したら別の実行エージェントに分散して実行する場合
実行エージェントでのジョブ実行数が上限に達したら,別の実行エージェントに負荷を分散させる場合は,それぞれの実行エージェントに優先順位を設定します。また,必要に応じてジョブ実行多重度もそれぞれの実行エージェントに設定します。
実行エージェントでのジョブ実行数が上限に達したら,別の実行エージェントに分散して実行する場合の例を次の図に示します。
例えば,実行エージェントグループAGTGR1にグルーピングした実行エージェントAGT1,AGT2,AGT3の優先順位をそれぞれ「16(いちばん高い)」,「15(2番目に高い)」,「14(3番目)」とし,ジョブ実行多重度をすべて「2」とした場合,ジョブの実行順序は次のようにして決定されます。
-
job1が実行される。
「ジョブ実行数 / ジョブ実行多重度」は次のとおりです。
-
実行エージェントAGT1:「0 / 2」
-
実行エージェントAGT2:「0 / 2」
-
実行エージェントAGT3:「0 / 2」
優先順位がいちばん高い実行エージェントはAGT1であるため,job1はAGT1で実行されます。
-
-
job2が実行される。
job1がAGT1で実行されているため,「ジョブ実行数 / ジョブ実行多重度」は次のようになります。
-
実行エージェントAGT1:「1 / 2」
-
実行エージェントAGT2:「0 / 2」
-
実行エージェントAGT3:「0 / 2」
実行エージェントAGT2とAGT3のエージェント使用率※が低くなりますが,優先順位がいちばん高いのはAGT1のため,job2もAGT1で実行されます。
-
-
job3が実行される。
job2がAGT1で実行されているため,「ジョブ実行数 / ジョブ実行多重度」は次のようになります。
-
実行エージェントAGT1:「2 / 2」
-
実行エージェントAGT2:「0 / 2」
-
実行エージェントAGT3:「0 / 2」
優先順位がいちばん高いのはAGT1ですが,ジョブ実行多重度の上限に達しているため,job3は次に優先順位が高いAGT2で実行されます。
-
-
job4が実行される。
job3がAGT2で実行されているため,「ジョブ実行数 / ジョブ実行多重度」は次のようになります。
-
実行エージェントAGT1:「2 / 2」
-
実行エージェントAGT2:「1 / 2」
-
実行エージェントAGT3:「0 / 2」
job3と同様に,job4はAGT2で実行されます。
-
-
job5が実行される。
job4がAGT2で実行されているため,「ジョブ実行数 / ジョブ実行多重度」は次のようになります。
-
実行エージェントAGT1:「2 / 2」
-
実行エージェントAGT2:「2 / 2」
-
実行エージェントAGT3:「0 / 2」
実行エージェントAGT1,AGT2とも,ジョブ実行多重度の上限に達しているため,job5はAGT3で実行されます。
-
-
job6が実行される。
job5がAGT3で実行されているため,「ジョブ実行数 / ジョブ実行多重度」は次のようになります。
-
実行エージェントAGT1:「2 / 2」
-
実行エージェントAGT2:「2 / 2」
-
実行エージェントAGT3:「1 / 2」
実行エージェントAGT1,AGT2とも,ジョブ実行多重度の上限に達しているため,job6はAGT3で実行されます。
-
- 注※
-
エージェント使用率とは,エージェントホストのジョブの実行多重度に対する実行中のジョブ数の割合です。
実行エージェントグループに複数接続した実行エージェントへのジョブの配信方法およびエージェント使用率の詳細については,マニュアル「JP1/Automatic Job Management System 3 導入ガイド 5.4.9 実行ホスト(エージェントホスト)へのジョブ実行配信」を参照してください。