マネージャー・エージェント構成でQUEUEジョブ,サブミットジョブを実行する場合,実行先となるエージェントホストをマネージャーホストに登録する必要があります。
(1) キュー・エージェント構成の検討
マネージャーホストにエージェントホストを登録すると,エージェントホストと同じ名称の内部的なキュー(デフォルトキュー)が作成されます。
QUEUEジョブ,サブミットジョブを,キュー名またはエージェントホスト名を指定して実行すると,このキューにジョブが登録されます。登録されたジョブは,登録順に並べられ,該当するエージェントホストに配信されます。
キュー・エージェント構成の例を次に示します。
図7-1 キュー・エージェント構成の例
マネージャーホストへのエージェントホストの登録は,jpqimportコマンドまたはjpqagtaddコマンドを使用します。コマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス2 3. 特別な運用で使用するコマンド」を参照してください。
また,キューには複数のエージェントを接続できます。キューに複数のエージェントを接続し,ジョブ実行多重度(同時に実行できるジョブ数)やエージェントの優先順位を設定することで,ジョブ実行時の負荷を分散させることができます。
キューに複数のエージェントを接続した負荷分散構成の例を次に示します。
図7-2 キュー・エージェントの負荷分散構成の例
ジョブ実行多重度は,jpqagtaltコマンドで変更できます。また,キューへの複数エージェントの接続や優先順位は,jpqagtlinkコマンドで設定できます。各コマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス2 3. 特別な運用で使用するコマンド」を参照してください。
また,ジョブ実行多重度やエージェントの優先順位による負荷分散の考え方については,「(2) 負荷分散の考え方」を参照してください。
(2) 負荷分散の考え方
負荷分散の考え方について説明します。
ここでは,次の内容が設定されている場合を例とします。
図7-3 負荷分散の考え方
サブミットジョブ(job1~job6)の実行順序は次のようにして決定されます。
(3) 同一マシンを複数の実行ホストとして使用する方法
JP1/AJS3で管理するエージェントは,エージェントごとにジョブの実行多重度を設定できます。同一マシン(一つのIPアドレス)に対して複数のエージェントホストをエイリアスとして定義し,特性の異なるジョブを別のエージェントホストに登録することで,一つのマシン上で業務を振り分けることができます。例えば,実ホスト(hostA)に対してhostB,hostCというエイリアスを定義し,一つのマシン上で次の図のように業務を振り分けることができます。
なお,キューレスジョブは,エイリアスのエージェントホスト名を使用できません。
図7-4 業務の振り分け例
このような運用をするには,ジョブ実行制御の構成定義にエイリアスのエージェント名を追加します。その際はhostsファイルでエイリアス名を指定して,エイリアス名でIPアドレスが解決できることを確認してください。エージェント名の追加方法については,次の設定方法の「(b) QUEUEジョブ,サブミットジョブ実行制御の構成定義」を参照してください。
また,JP1/Baseのバージョン06-71でサポートされたjp1hosts情報で定義すると,hostsファイルなどのOSの設定を変更しないでJP1独自のhosts情報を持つことができます。次に設定方法を示します。
(a) jp1hosts情報の定義
IPアドレスが100.0.0.10,実ホスト名がhostAであるノードに対してhostB,hostCというエイリアスのホスト名を定義する場合の例を説明します。
hostA 100.0.0.10
hostB 100.0.0.10
hostC 100.0.0.10
jbshostsimport {-o|-r} jp1hosts定義ファイル名 [-h 論理ホスト名]
(b) QUEUEジョブ,サブミットジョブ実行制御の構成定義
エイリアスエージェントを追加する場合の手順を次に示します。
コマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス2 3. 特別な運用で使用するコマンド」を参照してください。
jpqagtadd [-mh マネージャーホスト名] -ah hostA -cp 0:00-0:00=5
jpqagtadd [-mh マネージャーホスト名] -ah hostB -cp 0:00-0:00=1
jpqqueopen [-mh マネージャーホスト名] -ah hostA -en
(4) QUEUEジョブ,サブミットジョブ実行環境の検討時の注意事項
QUEUEジョブ,サブミットジョブ実行環境の検討時には,次の内容について注意してください。
(a) ジョブ実行多重度の検討(QUEUEジョブ,サブミットジョブ)
JP1/AJS3では,エージェントホストで同時に実行できるジョブ数の最大値としてジョブ実行多重度を設定できます。ジョブ実行多重度に設定した値以上のジョブをエージェントホストで同時に実行しようとした場合,ジョブは実行待ち状態となります。ジョブ実行多重度を設定することによって,時間帯を分けてジョブ数を制限して負荷を分散させたり,キューに複数のエージェントホストを接続している場合に複数のエージェントに負荷を分散させたりして運用できます。
ジョブ実行多重度はエージェント単位に指定します。キュー単位には指定できません。
●ジョブ実行多重度設定時の注意事項
デフォルトの設定(終日,ジョブ実行多重度5)で運用する場合,実行時間の短いジョブや同時に実行登録するジョブ数が少ない場合には影響がありませんが,実行時間の長いジョブや,同時に実行登録するジョブ数が多い場合に,実行中のジョブ数がジョブ実行多重度に達しやすく,ジョブ実行多重度に達している時間が長いことによって,後続のジョブの実行に影響を及ぼすおそれがあります。
エージェントホストで実行中のジョブ数がジョブ実行多重度に達している間,後続のジョブはエージェントで実行中のジョブが終了するまでキューイングの状態で待機します。このような場合,予想以上にジョブの実行時間が長く掛かることになるため,ジョブの実行時間,単位時間当たりのジョブ実行数を考慮したジョブ実行多重度を設定するようにしてください。
●ジョブのキューイング状態が続く場合にジョブ実行多重度に達しているかを確認する
エージェントホストで実行中のジョブ数が,ジョブ実行多重度に達しているために後続のジョブが「キューイング」状態のままとなり,ジョブが実行されるまでに時間が掛かることがあります。実行中のジョブ数がジョブ実行多重度に達しているかを確認するには,jpqagtshowコマンドを実行し,実行中のジョブ数(EXECUTING)と,ジョブ実行多重度(CUREXECHGNUM)を確認してください。jpqagtshowコマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス2 3. 特別な運用で使用するコマンド jpqagtshow」を参照してください。
また,ジョブ実行多重度に達しているためにジョブが実行できない場合,次に示すメッセージを統合トレースログに出力するようにあらかじめ設定しておくことで,ジョブの実行に時間が掛かった要因がジョブ実行多重度到達であるかどうかを確認できます。
KAVU4310-I エージェント(エージェントホスト名)で実行中のジョブ数がジョブ実行多重度(ジョブ実行多重度)に達しています(ホスト名:ホスト名,ジョブ番号:ジョブ番号) |
設定方法の詳細については,マニュアル「JP1/Automatic Job Management System 3 構築ガイド1 6.2.13 ジョブ実行多重度到達を確認するメッセージを出力する設定」(Windowsの場合)またはマニュアル「JP1/Automatic Job Management System 3 構築ガイド1 15.2.13 ジョブ実行多重度到達を確認するメッセージを出力する設定」(UNIXの場合)を参照してください。
(b) サブミットジョブの実行順序に関する注意事項
jpqjobsubコマンドを使用してサブミットジョブを登録した場合は,サブミット順にジョブを実行開始します。ただし,ジョブを配信する際に次の状態にある場合,ジョブの実行順序がサブミット順にならないことがあります。
ジョブまたはジョブネットに対して関連線を設定することで,ジョブの実行順序の入れ替わりを防止できるため,ジョブネットでの運用ができる場合は,関連線を設定することでの対応を検討してください。
ジョブネットで運用できない場合,サブミットジョブの実行順序の入れ替わりを防止する設定を行うと,上記の状態が回復するまで,常に最初に登録したジョブをキューから取り出して配信し,ジョブの実行順序が入れ替わるのを防止できます。
設定方法の詳細については,「7.1.11 サブミットジョブの実行順序の入れ替わりを防止する設定」を参照してください。
また,エージェント使用率とは,エージェントホストのジョブの実行多重度に対する実行中のジョブ数の割合です。エージェント使用率の詳細については,マニュアル「JP1/Automatic Job Management System 3 導入ガイド 10.5(6) 実行ホスト(エージェントホスト)へのジョブ実行配信」を参照してください。
(c) jpqendjobshowコマンドやjpqjobshowコマンドで列挙するジョブ数が多い場合の対処
jpqendjobshowコマンド(終了ジョブの列挙)やjpqjobshowコマンド(キューイング中のジョブの列挙)の実行時に標準出力ファイルに列挙するジョブ数が多い場合,コマンドの実行やその他の要求に時間が掛かったり失敗したりすることがあります。
こうした場合を踏まえ,次のことを検討してください。
また,ジョブ実行マネージャー(jpqman)では,ジョブ情報列挙時に,列挙数に応じてメモリーを消費しているため,列挙数が増加すると統合トレースログにメッセージKAVU4280-Eを出力し,jpqjobshowコマンドまたはjpqendjobshowコマンドが失敗する場合があります。この場合,ジョブ情報列挙時にジョブ実行制御マネージャーのメモリー消費量が少なくなるように設定することで回避できる場合があります。
設定方法の詳細については,「7.1.12 ジョブ情報列挙時にジョブ実行制御マネージャー(jpqman)のメモリー消費量を少なくする設定」を参照してください。