3.4.5 マルチサーバのプロセス制御の例
マルチサーバを指定したUAP(SPP,またはMHP)のプロセス制御を,例を使って示します。ユーザサービス定義でプロセス制御に関して,次の表のように指定したとします。
定義項目 |
サービスグループ名 |
合計 |
||
---|---|---|---|---|
G1 |
G2 |
G3 |
||
常駐プロセスの数 |
2 |
1 |
1 |
4 |
サービスグループ内のプロセスの最大数 |
4 |
2 |
2 |
8 |
スケジュールプライオリティ |
1 |
2 |
3 |
該当しない |
このとき同時に起動できるSPPとMHPのプロセスの最大数を6とします。サービスグループG1,G2,G3の常駐プロセス数の合計が4なので,動的に起動できるプロセスはあと二つになります。その二つを,サービスグループG1,G2,G3がスケジュールプライオリティに従って利用します。プロセス制御の流れを次の表に示し,時間の経過とともにプロセスの制御の流れを説明します。
時間の経過 |
サービス要求 |
サービスグループ名 |
||
---|---|---|---|---|
G1 |
G2 |
G3 |
||
1 |
オンライン開始 |
○○ |
○ |
○ |
2 |
G1,G3にサービス要求 |
●● |
○ |
● |
3 |
G1,G3のサービス要求増加 |
●●▲ |
○ |
●▲ |
4 |
G1のサービス要求さらに増加 |
●●▲▲ |
○ |
● |
5 |
G2にサービス要求 |
●●▲▲ |
● |
● |
6 |
G2のサービス要求増加 |
●●▲▲ |
● |
● |
7 |
G1のサービス要求低下 |
●●▲ |
●▲ |
● |
- (凡例)
-
○:待機している常駐プロセス(起動済み)
●:サービスを実行中の常駐プロセス
▲:サービスを実行中の非常駐プロセス
- 経過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に対するサービス要求を,プロセスを制御することで効率的に処理しています。