両者は負荷分散アルゴリズムを要約する

両者は負荷分散アルゴリズムを要約する

さまざまな負荷分散アルゴリズムが存在します。これらを研究する際には、まずこれらの方法の概念を理解する必要があります。しかし、多くの友人はいつもそれを思い出せないと感じているので、ここで要約します。内容は多少重複するかもしれませんが、要約の仕方はそれぞれ異なります。どれが自分の記憶に合っているか考えてみましょう。

ラウンドロビン、最小接続、応答時間、ハッシュ、最小接続失敗、リンク帯域幅など、多くのサーバー負荷分散アルゴリズム(連続および非連続の両方)があります。さらに、割り当てられたトラフィックを調整するために、実サーバーに異なる重みを割り当てることができます。たとえば、高性能の大規模サーバーには大きな重みを設定し、パフォーマンスの低い小規模サーバーには小さな重みを設定できます。過負荷によるサーバーのクラッシュを防ぐために、実サーバーに最大接続しきい値を指定して、サーバーの過負荷を防ぐことができます。任意のサーバーを別のサーバーのバックアップサーバーまたはオーバーフローサーバーとして指定できるため、アプリケーションの可用性がさらに確保されます。

非永続アルゴリズム:

クライアントからの異なるリクエストは、実際のサービス グループ内の異なる実サーバーに割り当てられて処理される場合があります。主なアルゴリズムには、ラウンドロビン アルゴリズム、最小接続アルゴリズム、応答速度アルゴリズムなどがあります。

-ラウンドロビン:

例:

ネットワークからの各要求は、1 から N までの各サーバーに順番に割り当てられ、その後再起動されます。

例:

この負荷分散アルゴリズムは、サーバー グループ内のすべてのサーバーのハードウェアとソフトウェアの構成が同じで、平均的なサービス要求が比較的均衡している状況に適しています。

-最小接続アルゴリズム:

例:

各クライアントがサービスを要求してサーバーに滞在する時間は大きく異なる場合があります。作業時間が長くなると、単純なラウンドロビンまたはランダム負荷分散アルゴリズムを使用すると、各サーバーでの接続プロセスが大きく異なる可能性があり、このような結果では真の負荷分散が実現されません。最小接続数分散アルゴリズムには、内部負荷を持つ各サーバーのデータレコードがあり、レコードの内容は現在サーバーによって処理されている接続数です。新しいサービス接続要求がある場合、現在の要求は接続数が最小のサーバーに割り当てられるため、バランスは実際の状況に近くなり、負荷はより均等になります。

例: この負荷分散アルゴリズムは、処理に長い時間のかかる要求サービスに適しています。

-応答時間アルゴリズム:

例:

負荷分散デバイスは、各内部サーバーに検出要求 (Ping など) を送信し、各内部サーバーの検出要求に対する最も速い応答時間に基づいて、どのサーバーがクライアントのサービス要求に応答するかを決定します。

例:

この負荷分散アルゴリズムは、サーバーの現在の動作状態をより適切に反映できますが、最速応答時間は、負荷分散デバイスとサーバー間の最速応答時間のみを指し、クライアントとサーバー間の最速応答時間を指すものではありません。

永続アルゴリズム:

特定のクライアントからのリクエストは、実サービス グループ内の同じ実サーバーに割り当てられて処理されます。主に次のものが含まれます。

A. IPベースのアルゴリズム

- 永続 IP (pi): ユーザーの IP アドレスに基づいてサーバーを選択します。

-ハッシュIP(hi):ユーザーのIPアドレスのハッシュ値に基づいてサーバーを選択します

-一貫性のあるハッシュ IP (chi):

B. ヘッダー/リクエストベースのアルゴリズム

-ハッシュ ヘッダー (hh): ユーザー要求の HTTP ヘッダーに基づいてサーバーを選択します。

- 永続ホスト名 (ph): ユーザー要求の HTTP ヘッダーにあるホスト名のハッシュ値に基づいてサーバーを選択します。

- 永続 URL (pu): URI タグと値間の静的な対応に基づいてサーバーを選択します。

-SSL セッション ID (sslsid): SSL セッション ID に基づいてサーバーを選択します。

C. クッキーベースのアルゴリズム

- 永続 Cookie (pc): ユーザー要求パケットに基づいて、サーバーと Cookie 名/値間の静的な対応を選択します。

-ハッシュ Cookie (hc): ユーザー要求パケット内の Cookie 名と値のハッシュ値の対応に基づいてサーバーを選択します。

-Cookie の挿入 (ic): ロード バランサーに基づいて、サーバー応答パケットに Cookie を挿入するサーバーを選択します。

- Cookie の書き換え (rc): ロード バランサーに基づいてサーバーを選択し、サーバー応答パケット内の Cookie 値を書き換えます。

(書き換えるにはCookie値のオフセットを指定する必要があります)#p#

基本的な負荷分散アルゴリズム

負荷分散アルゴリズムの設計品質は、負荷分散におけるクラスターのパフォーマンスを直接的に決定します。アルゴリズムの設計が不十分だと、クラスター内の負荷の不均衡につながります。一般的な負荷分散アルゴリズムの主なタスクは、次のクラスターノードを選択して、新しいサービス要求をそのノードに転送する方法を決定することです。単純な負荷分散方法の中には、単独で使用できるものもあれば、他の単純な方法や高度な方法と組み合わせて使用​​する必要があるものもあります。優れた負荷分散アルゴリズムは完璧ではなく、通常は特定の特殊なアプリケーション環境でのみ完璧な役割を果たします。したがって、負荷分散アルゴリズムを検討するときは、アルゴリズム自体の適用性にも注意を払い、クラスターを展開するときにクラスター自体の特性に基づいて総合的に検討し、さまざまなアルゴリズムとテクノロジを組み合わせて使用​​する必要があります。

1 回転方法:

ラウンドロビン アルゴリズムは、すべてのスケジューリング アルゴリズムの中で最もシンプルで実装が簡単です。タスク キューでは、キューの各メンバー (ノード) は同じステータスを持ち、ラウンドロビン方式では、このメンバー グループを順番に選択します。負荷分散環境では、バランサーは新しい要求をノード キューの次のノードに順番に送信し、これを継続的に繰り返して実行し、クラスター内の各ノードが同じステータスで順番に選択されます。このアルゴリズムは、DNS ドメイン名ポーリングで広く使用されています。

ラウンドロビン方式のアクティビティは予測可能であり、各ノードが選択される確率は 1/N であるため、ノードの負荷分散を計算するのは簡単です。ラウンドロビン方式は、通常、クラスター内のすべてのノードの処理能力とパフォーマンスが同じである状況に適しています。実際のアプリケーションでは、他の単純な方法と組み合わせて使用​​すると、一般的に効果的です。

2 ハッシュ

ハッシュ方式はHASHとも呼ばれます。シングルショットの不可逆なHASH関数により、ネットワーク要求は一定の規則に従ってクラスターノードに送信されます。ハッシュ方式は、他のタイプのバランシングアルゴリズムがあまり効果的でない場合に特別な力を発揮します。たとえば、前述のUDPセッションの場合、ラウンドロビン方式や接続情報に基づく他のタイプのアルゴリズムでは、セッションの開始マークと終了マークを識別できず、アプリケーションの混乱を引き起こします。

データ パケットの送信元アドレスに基づくハッシュ マッピングにより、この問題はある程度解決できます。同じ送信元アドレスを持つデータ パケットは同じサーバー ノードに送信されるため、高レベル セッションに基づくトランザクションが適切に実行されます。対称的に、宛先アドレスに基づくハッシュ スケジューリング アルゴリズムは、Web キャッシュ クラスターで使用できます。同じターゲット サイトを指すアクセス要求は、ロード バランサーによって同じキャッシュ サービス ノードに送信され、ページ不足によるキャッシュの更新の問題を回避します。

3 最小接続法

最小接続方式では、バランサーは現在アクティブな接続をすべて記録し、次の新しいリクエストを接続数が最も少ないノードに送信します。このアルゴリズムは TCP 接続で実行されますが、アプリケーションによって消費されるシステム リソースが大きく異なる場合があり、接続数が実際のアプリケーション負荷を反映できないため、負荷の高い Web サーバーをクラスター ノード サービス (Apache サーバーなど) として使用する場合、このアルゴリズムは負荷分散の観点からは無視されます。この悪影響を軽減するために、各ノードの最大接続制限を設定できます (しきい値設定によって反映されます)。

4 *** メソッドが見つかりません

*** missing 方式では、バランサーは各ノードのリクエスト ステータスを長時間記録し、履歴の中で最も少ないリクエストを処理したノードに次のリクエストを送信します。最小接続方式とは異なり、*** missing は現在の接続数ではなく過去の接続数を記録します。

5. 最速応答方法

バランサは、自身から各クラスタ ノードまでのネットワーク応答時間を記録し、次に到着する接続要求を応答時間が最も短いノードに割り当てます。この方法では、各ノードをアクティブに検出するために、ICMP パケットまたは UDP パケットに基づく専用テクノロジを使用する必要があります。

ほとんどの LAN ベースのクラスターでは、最速応答アルゴリズムはあまりうまく機能しません。これは、LAN 内の ICMP パケットは基本的に 10 ミリ秒以内に応答し、ノード間の差異を反映しないためです。バランス調整が WAN 上で実行される場合、応答時間はユーザーが近くのサーバーを選択するのに依然として意味があります。また、クラスター トポロジが分散されているほど、この方法はより効果的です。この方法は、トポロジ リダイレクトに基づく高度なバランス調整で使用される主な方法です。

6 加重法

重み付け方式は、他の方式と組み合わせてのみ使用でき、他の方式を補完するのに適しています。重み付けアルゴリズムは、ノードの優先度または現在の負荷状態 (つまり重み) に基づいて、負荷分散されたマルチ優先度キューを形成します。キューで処理を待機している各接続は同じ処理レベルを持つため、同じキューを以前のラウンドロビン方式または最小接続方式に従ってバランスさせ、キューを優先度順にバランスさせることができます。ここで、重みは各ノードの容量に基づく推定値です。

<<:  負荷分散アルゴリズムのQ&A集

>>:  DNS 負荷分散ランキングアルゴリズムの理解

ブログ    
ブログ    
ブログ    

推薦する

...

...

マイクロソフトは、対話してマルチモーダルコンテンツを生成できる AI モデル CoDi をリリースしました。

マイクロソフトは 7 月 11 日にプレスリリースを発行し、Combinable Diffusion...

...

人工知能を活用してより質の高い雇用を実現

科学技術の発展に伴い、人工知能によって引き起こされた新たな科学技術と産業革命は、わが国の雇用に持続的...

トレンド: 2022 年の AI に関する 5 つの予測

2022年も、疫病やサプライチェーン危機などの悪影響は続くとみられ、AIに対する消費者の信頼獲得や気...

我が国の独自開発OS micROSがリリースされました!このロボットの「心と脳」は単純ではない

9月10日、2019年世界コンピューター会議が湖南省で開催されました。中国科学院院士の楊学軍氏は、我...

...

...

1日で13.5%も急落!オラクル株は2002年以来最大の下落

オラクルの株価は現地時間9月12日に13.5%急落し、20年以上で最大の下落を記録した。その理由は、...

ChatGPTの収益成長は阻害されている:モバイルアプリのダウンロードは急増しているが、拡大は遅い

10月10日、最近のレポートによると、OpenAIの人工知能チャットボットChatGPTの収益成長が...

音楽駆動型デジタルヒューマン技術の詳細な説明

1. ミュージックXRメーカーMusic XR Makerは、テンセントミュージック初のオーディオお...

10億ピクセル画像のマルチスケール特性評価のためのスタンフォード大学の新しいニューラルシーン表現方法がSIGGRAPHに選出されました

現在、ニューラル表現は、レンダリング、イメージング、幾何学モデリング、シミュレーション アプリケーシ...

ナレッジグラフリテラシー

過去 2 年間で、Linking Open Data などのプロジェクトの本格的な開発により、セマン...

Google が「シャンプー」という 2 次最適化アルゴリズムを提案、Transformer のトレーニング時間を 40% 削減

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...