3.1.1 ジョブのスループット
JP1/AJS3のスループットを考える場合には,JP1/AJS3の処理性能とJP1/AJS3から起動したジョブの実行時間を分けて考える必要があります。JP1/AJS3がジョブを起動してから,実際にジョブが終了するまでの間はジョブそのものの実行時間になります。そのため,JP1/AJS3の処理性能とジョブの実行時間を考慮して,単位時間当たりに実行するジョブ量を見積もる必要があります。
なお,大量に標準エラー出力に出力した場合や,大容量の転送ファイルを転送する場合には,別途その転送時間も考慮する必要があります。
(1) ジョブの処理性能
JP1/AJS3の処理能力は,単位時間当たりのジョブ実行数で見積もれます。負荷の軽い状態で「何もしないジョブ」を多く実行させた結果が,JP1/AJS3のピーク時の性能と考えることができます。実際に業務を実行するジョブの数が,ピーク時の性能を十分に下回っていることを確認してください。
一般に,ジョブは特定の時間帯に集中して実行することが多いので,安定した性能見積もりのためには,最もジョブが集中する時間帯で,ピーク時の性能を超えないように考慮する必要があります。
また,業務を運用中にジョブがエラーになってリカバリー処理をすることを考慮し,余裕を持って性能を見積もってください。
簡易的に,ジョブの実行が最も集中する時間帯には平均の10倍のジョブが実行されると仮定し,一日のジョブ総量はピーク時の性能の10分の1程度の範囲で利用するように見積もって運用することを推奨します。一日のジョブ運用時間を12時間とした場合の見積もり例を次の表に示します。
ピーク時の性能は,使用しているハードウェアなどによって変わります。
ピーク時の性能 (1秒当たりのジョブ実行数) |
ピーク時の性能 (1時間当たりのジョブ実行数) |
運用時間を12時間とした場合の1日当たりの推奨ジョブ実行数 |
---|---|---|
0.5 |
1,800 |
2,160 |
1.0 |
3,600 |
4,320 |
2.0 |
7,200※ |
8,640 |
3.0 |
10,800※ |
12,960 |
4.0 |
14,400※ |
17,280 |
5.0 |
18,000※ |
21,600 |
- 注※
-
実際の運用時は,5,000ジョブを下回るようにジョブの起動数を制限することを推奨します。
ピーク時の1秒当たりのジョブ実行数が0.5件の場合を例にして説明します。
ピーク時の1時間当たりのジョブ実行数は,次のようになります。
0.5件*3,600秒 = 1,800件
運用時間を12時間と仮定しているため,ピーク時の性能で運用が12時間続いた場合を仮定すると,1日のジョブ実行数は次のようになります。
1,800件*12時間 = 21,600件
そのため,1日当たりの推奨ジョブ実行数は,次のようになります。
21,600件 / 10 = 2,160件
(2) イベントジョブの処理性能
イベントジョブ(起動条件内のものを含む)は,標準ジョブとは実行プロセスが異なることから,「(1) ジョブの処理性能」の内容には該当しません。
イベントジョブについては,一度に実行登録できる上限数などの制限があるため,「付録B.8 イベント・アクション制御の制限値」を参照の上,制限値の範囲内で運用してください。
また,事前にイベント発生数を見積もり,「3.1.5 イベント監視の処理性能」を参照の上,処理できるイベント数の範囲内で運用してください。
(3) スケジューラーサービスの多重起動
マネージャーホストに複数のCPUが搭載されている場合,一つのスケジューラーサービスによる運用では資源の活用に限界があるため,多重起動する運用を推奨します。スケジューラーサービスの多重起動については,「4.3.2 スケジューラーサービスの多重起動について検討する」を参照してください。
なお,CPUが一つしか搭載されていないマシンの場合でも,CPU処理能力の範囲でスケジューラーサービスの多重起動が有効と考えられるケースがあるため,上記のシステム構成の検討を推奨します。
(4) エージェントホストの分散
マネージャーホストでの処理能力を最大限に生かすために,ジョブの実行先を複数のエージェントホストに分散させる構成を推奨します。これによって,マネージャーホストの負荷を軽減できます。
複数のエージェントホストに負荷分散させる構成については,「2.5.2 負荷分散に対応する場合の検討」を参照してください。
(5) OSのチューニング
(a) TCP/IPパラメーター
ジョブを大量に実行するような運用の場合,JP1/AJS3内のプロセス間通信およびマネージャー・エージェント間通信で利用するソケットポート数がOSの上限を超え,ジョブ実行遅延,ジョブ異常終了,スケジューラーサービス異常終了,およびコマンド異常終了が発生することがあります。
このため,業務のピーク時にソケットポート数不足が発生しないように,OSのTCP/IPパラメーターを調整する必要があります。調整するパラメーターを次に示します。
-
ソケットポートの個数
-
ソケットポートのTIME_WAIT間隔
各OSのTCP/IPパラメーターのデフォルト値を次の表に示します。
OS |
利用できる ソケットポート数 |
TIME_WAIT間隔 (単位:秒) |
---|---|---|
Windows Server 2019 |
16,383 |
120 |
Windows Server 2016 |
16,383 |
120 |
Windows Server 2012 |
16,383 |
120 |
HP-UX(IPF) |
16,383 |
60 |
Solaris |
32,768 |
60 |
AIX |
32,768 |
15 |
Linux |
28,233 |
60 |
利用できるソケットポート数やTIME_WAIT間隔の値は,OSのバージョンやサービスパックによって異なることがあるため,最新のOSのマニュアルなどで確認してください。
Windowsの場合,次に示すレジストリーの設定を変更してOSを再起動することでTCP/IPパラメーターを変更できます。設定の変更方法およびその他のOSでの変更方法については,各OSのマニュアルを参照してください。
-
レジストリーキー
\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
-
パラメーター
-
MaxUserPort
-
TcpTimedWaitDelay
-
次に示す方法で,TIME_WAIT間隔単位時間当たりで実行できる最大ジョブ数を見積もり,必要に応じてTCP/IPパラメーターを調整してください。
なお,OSのTCP/IPパラメーターを調整することによって,OSリソースが消費されることがあります。詳細については,各OSのマニュアルなどを確認してください。
- 見積もり方法
-
次の計算式で見積もります。
TIME_WAIT間隔※1単位時間当たりで実行できる最大ジョブ数 = 利用できるソケットポート数※1,※2,※3 / JP1/AJS3使用ポート数※4
- 注※1
-
具体的な値は,OSのTCP/IPパラメーター値を確認してください
- 注※2
-
OSのTCP/IPパラメーター値は,システムで利用できる総数です。このため,OSのサービスやJP1/AJS3以外の製品が利用するソケットポート数を除いた値としてください。
- 注※3
-
ジョブ配信遅延の軽減機能を有効にした状態で障害エージェントを検知した場合,通信状態確認中または通信状態回復確認中は,最大で1,024個分のソケットポートを使用します。
- 注※4
-
JP1/AJS3での1ジョブ実行時にTIME_WAITとなるポート数です。
なお,JP1/AJS3での1ジョブ実行時にTIME_WAITとなるポート数は,使用するポート数を削減する設定と,通信暗号化機能の設定によって異なります。
使用するポート数の削減は,環境設定パラメーターREDUCEUSEPORTで設定できます。環境設定パラメーターREDUCEUSEPORTの詳細については,マニュアル「JP1/Automatic Job Management System 3 構築ガイド 20.8.2(5) REDUCEUSEPORT」を参照してください。
JP1/AJS3での1ジョブ実行時にTIME_WAITとなるポート数を,次の表に示します。
表3‒3 JP1/AJS3での1ジョブ実行時にTIME_WAITとなるポート数 使用するポートを削減する設定※1
通信暗号化機能
無効
有効
有効
最大4個※2
最大1個※2
無効
最大11個※2
最大5個※2
- 注※1
-
次のジョブ種別を使用する場合は,使用するポート数を削減する設定は常に無効として見積もってください。
-
QUEUEジョブ
-
サブミットジョブ
-
フレキシブルジョブ
-
イベントジョブ
-
- 注※2
-
エージェント監視インターバル(デフォルト5分)がTIME_WAIT間隔より短い場合は,使用するポート数の値に1を加えて見積もってください。
また,最大ジョブ数を見積もるときは,実行エージェントの操作によってTIME_WAITとなるポート数も含めて検討する必要があります。実行エージェントの操作で使用するポート数については,「3.2.6 ポート使用量を見積もる」を参照してください。
- 見積もり例
-
Windows Server 2019の場合(OSのデフォルト設定の場合)を例にして説明します。
-
OSで利用できるソケットポート数
16,383個※
-
TIME_WAIT間隔
120秒
-
使用するポート数を削減する設定が有効で,かつ通信暗号化機能が無効のときにTIME_WAITとなるポート数
最大4個
-
TIME_WAIT間隔単位時間当たりで実行できる最大ジョブ数
16,383 / 4 ≒ 4,095
- 注※
-
JP1/AJS3以外の製品でソケットポートを利用しない場合の個数です。実際に見積もりをする際には,OSのサービスやJP1/AJS3以外の製品で利用するソケットポート数を除いた値にする必要があります。
この例の場合,120秒間に4,095以上のジョブを実行するとソケットポートが枯渇してジョブ実行遅延などが発生するおそれがあります。そのため,120秒間に4,095以上のジョブを実行するような状況が考えられる場合,OSのTCP/IPパラメーターの設定を変更して最大ジョブ実行数を調整する必要があります。
-