PCクラスタ向けOS「SSS-PC」のための負荷分散スケジューラの設計
Design of a load balancer on the OS "SSS-PC" for a PC cluster
本スケジューラーは、各ノードの負荷情報に基づき、タスクを適当なノードにマイグレーションすることによってロードバランシングを実現する。
情報開示機構を用いる。
ここではアルゴリズムについて検討する。スケジューラーは自ノード上のタスクを他ノードへマイグレーションするかどうか判断するが、以下の3点での判断が必要となる。
1.については、自ノード全体の負荷と他の各ノードそれぞれの負荷情報を比較し、他のノードより著しく高いと判断された場合にはマイグレーションすべきと判断する必要がある。
2.については、自ノードのうち「他ノードに移動させると負荷が平均化されるタスク」を選択する必要がある。
負荷が極端に大きいタスクを他ノードへ移動させると、移動先ノードの負荷が大きくなりすぎて再びマイグレーションが発生し、これを繰り返すことでマイグレーションばかりが発生する可能性がある。
逆に負荷が極端に小さいタスクを他ノードへ移動させると、負荷の変化があまり起こらないため何度もマイグレーションが発生する可能性がある。
よって、「マイグレーションを行うと自ノード・相手先ノード共に負荷が平均化されるタスク」を選択する必要がある。
3.については、負荷が最も小さいノードを選択すべきなのかそうでないのかを検討すべきである。
負荷が最も小さいノードを選択するようにすると、複数のノードから一斉にタスクが移動して一気に負荷がかかる可能性や、移動するタスクの負荷の大きさによってノード毎にばらつきが出る可能性がある。
ここではマイグレーション実行に必要なシグナルについて検討する。
マイグレーションの仕組みは以下の3ステップである。
SSSPCのロードバランシング
SSS-PCの特徴より引用:
この二つは何が違うの……?
その他の特徴: