3.4.5 マルチサーバのプロセス制御の例

マルチサーバを指定したUAP(SPP,またはMHP)のプロセス制御を,例を使って示します。ユーザサービス定義でプロセス制御に関して,次の表のように指定したとします。

表3-14 ユーザサービス定義での指定

定義項目サービスグループ名合計
G1G2G3
常駐プロセスの数2114
サービスグループ内のプロセスの最大数4228
スケジュールプライオリティ123該当しない

このとき同時に起動できるSPPとMHPのプロセスの最大数を6とします。サービスグループG1,G2,G3の常駐プロセス数の合計が4なので,動的に起動できるプロセスはあと二つになります。その二つを,サービスグループG1,G2,G3がスケジュールプライオリティに従って利用します。プロセス制御の流れを次の表に示し,時間の経過とともにプロセスの制御の流れを説明します。

表3-15 プロセス制御の流れ

時間の経過サービス要求サービスグループ名
G1G2G3
1オンライン開始○○
2G1,G3にサービス要求●●
3G1,G3のサービス要求増加●●▲●▲
4G1のサービス要求さらに増加●●▲▲
5G2にサービス要求●●▲▲
6G2のサービス要求増加●●▲▲
7G1のサービス要求低下●●▲●▲
(凡例)
○:待機している常駐プロセス(起動済み)
●:サービスを実行中の常駐プロセス
▲:サービスを実行中の非常駐プロセス
経過1
オンライン開始時にサービスグループG1,G2,G3の常駐プロセスを起動します。常駐プロセスの合計が4,起動できるプロセスの最大数が6なので,動的に起動できるプロセス数は2になります。
経過2
G1,G3にサービス要求が来たので,G1,G3の常駐プロセスでサービスを実行します。
経過3
G1,G3のサービス要求が増加したので,G1,G3の非常駐プロセスをサービスグループ内の最大数の範囲内で起動して,サービスを実行します。このとき,プロセス数の合計が6になったので,これ以上動的にプロセスを増やすことはできません。
経過4
G1のサービス要求がさらに増加しても,これ以上動的にプロセスを増やすことができません。そこで,G3よりもG1の方がスケジュールプライオリティが高いので,G3の非常駐プロセスを,実行中のサービスが終了した時点で終了させ,G1の非常駐プロセスを起動します。
経過5
G2にサービス要求が来ると,待機していたG2の常駐プロセスでサービスを実行します。
経過6
G2のサービス要求が増加しても,これ以上動的にプロセスを起動できません。また,G2よりもG1の方がスケジュールプライオリティが高いので,G1の非常駐プロセスを終了させて,G2の非常駐プロセスを起動することはしません。
経過7
G1のサービス要求が低下したので,G1の非常駐プロセスのうちの一つを,実行中のサービスが終了した時点で終了させ,G2の非常駐プロセスを起動します。

以上のようにOpenTP1では,SPPとMHPに対するサービス要求を,プロセスを制御することで効率的に処理しています。