ラウンドコールスケジューリング
1178 ワード
ラウンドロビン・スケジューラ(Round Robin Scheduling)アルゴリズムは、ラウンドロビン方式で要求を異なるサーバに順次スケジューリングすることである.すなわち、スケジュールごとにi=(i+1)mod nを実行し、i番目のサーバを選択する.アルゴリズムの利点は、現在のすべての接続の状態を記録する必要がない簡潔性であるため、無状態スケジューリングである.
システム実装では、サーバの重み値がゼロの場合、サーバがスケジューリングされずに使用できないことを示す追加の条件を導入しました.この目的は、サーバの障害を遮断したり、システムのメンテナンスをしたりするなど、サーバを切断し、他の重み付けアルゴリズムと一致させることです.したがって、アルゴリズムは相応の変更を行い、そのアルゴリズムの流れは以下の通りである.
ラウンドコールスケジューリングアルゴリズムフロー
S = {S0, S1, …, Sn-1}, i
,W(Si) Si 。 i n-1, n > 0。
j = i;
do {
j = (j + 1) mod n;
if (W(Sj) > 0) {
i = j;
return Si;
}
} while (j != i);
return NULL;
ホイールコールスケジューリングアルゴリズムは、サーバの現在の接続数と応答速度にかかわらず、すべてのサーバの処理性能が同じであると仮定します.このアルゴリズムは比較的簡単で、サーバグループで処理性能が異なる場合には適用されず、要求サービス時間の変化が比較的大きい場合、ラウンドスケジューリングアルゴリズムはサーバ間の負荷のバランスを招きやすい.
Round-Robin DNSメソッドも1つのドメイン名を複数のIPアドレスにコールスケジューリングする方式で解析しているが、コールDNSメソッドのスケジューリング粒度はドメイン名サーバごとに基づいており、ドメイン名サーバによるドメイン名解析のキャッシュはコール解析ドメイン名の有効化を妨げ、サーバ間の負荷の深刻な不均衡を招く.ここで、IPVSローテーションスケジューリングアルゴリズムの粒度は、各接続に基づいており、同一ユーザの異なる接続が異なるサーバにスケジューリングされるため、このような細粒度のローテーションスケジューリングはDNSのローテーションスケジューリングよりもはるかに優れている.