LVS セットアップノート: 負荷分散アルゴリズム

LVS セットアップノート: 負荷分散アルゴリズム

先ほど、負荷分散を完了するための最初のステップである Linux LVS インストール プロセスを紹介しました。具体的な負荷分散設定を紹介する前に、まず負荷分散アルゴリズムとは何かを理解しましょう。これは主に LVS がサポートするアルゴリズムに依存します。3 つのリクエスト転送方法については既に説明したので、ここでは詳細には触れません。アルゴリズムの具体的な内容を見てみましょう。

負荷分散のための8つのスケジューリングアルゴリズム

次のステップは、実際のニーズに応じて負荷分散方法とスケジューリング アルゴリズムを選択することです。現在、LVS には 3 つの主要な要求転送方法と 8 つのスケジューリング アルゴリズムがあります。要求転送方法に応じて、構築されたクラスターのネットワーク トポロジ、インストール方法、パフォーマンスも異なります。LVS は、LVS/NAT、LVS/TUN、LVS/DR の 3 種類のクラスターを構築するために使用できます。ニーズに応じて 1 つを選択できます。転送方法を選択すると、使用されるスケジューリング アルゴリズムによって、負荷分散全体のパフォーマンスが決まります。さまざまなアルゴリズムがさまざまなアプリケーション シナリオに適しています。特別な場合のためにスケジューリング アルゴリズムを設計する必要がある場合もあります。LVS のアルゴリズムは徐々に充実しています。当初、LVS は 4 つのスケジューリング アルゴリズムのみを提供していましたが、後に次の 8 つに開発されました。

負荷分散アルゴリズム 1. ラウンドロビン

スケジューラは、「ラウンドロビン」スケジューリング アルゴリズムを使用して、外部要求をクラスタ内の実サーバーに順番に分散します。実際の接続数やサーバー上のシステム負荷に関係なく、各サーバーを平等に扱います。

負荷分散アルゴリズム 2. 加重ラウンドロビン

スケジューラは、「加重ラウンドロビン」スケジューリング アルゴリズムを使用して、実サーバーのさまざまな処理能力に基づいてアクセス要求をスケジュールします。これにより、強力な処理能力を持つサーバーがより多くのアクセス トラフィックを処理できるようになります。スケジューラは、実サーバーの負荷状態を自動的に照会し、重みを動的に調整できます。

負荷分散アルゴリズム 3. 最小接続

スケジューラは、「最小接続」スケジューリング アルゴリズムを使用して、確立されたリンクの数が最も少ないサーバーにネットワーク要求を動的にスケジュールします。クラスタ システムの実際のサーバーのシステム パフォーマンスが類似している場合、「最小接続」スケジューリング アルゴリズムによって負荷のバランスをより適切に取ることができます。

負荷分散アルゴリズム 4. 重み付け最小接続

クラスタ システム内のサーバーのパフォーマンスが大きく異なる場合、スケジューラは「重み付け最小リンク」スケジューリング アルゴリズムを使用して、負荷分散パフォーマンスを最適化します。重みが高いサーバーは、アクティブな接続負荷の大部分を負担します。スケジューラは、実際のサーバーの負荷を自動的に照会し、重みを動的に調整できます。

負荷分散アルゴリズム 5. 局所性に基づく最小接続

「ローカリティベースの最小リンク」スケジューリング アルゴリズムは、ターゲット IP アドレスの負荷分散アルゴリズムであり、現在は主にキャッシュ クラスタ システムで使用されています。このアルゴリズムは、要求されたターゲット IP アドレスに基づいて、ターゲット IP アドレスによって最後に使用されたサーバーを検索します。サーバーが使用可能で過負荷でない場合は、要求がそのサーバーに送信されます。サーバーが存在しない場合、またはサーバーが過負荷で、ワークロードが半分のサーバーがある場合は、「最小リンク」原則を使用して使用可能なサーバーが選択され、要求がサーバーに送信されます。

負荷分散アルゴリズム 6. レプリケーションによる局所性ベースの最小接続

「ローカリティベースの最小リンクとレプリケーション」スケジューリング アルゴリズムもターゲット IP アドレスの負荷分散アルゴリズムであり、現在は主にキャッシュ クラスタ システムで使用されています。LBLC アルゴリズムとの違いは、LBLC アルゴリズムがターゲット IP アドレスからサーバ グループへのマッピングを維持するのに対し、LBLC アルゴリズムはターゲット IP アドレスからサーバへのマッピングを維持することです。このアルゴリズムは、要求のターゲット IP アドレスに基づいてターゲット IP アドレスに対応するサーバ グループを見つけ、「最小接続」の原則に従ってサーバ グループからサーバを選択し、サーバが過負荷でない場合は要求をサーバに送信します。サーバが過負荷の場合は、「最小接続」の原則に従ってクラスタからサーバを選択し、サーバ グループに追加して要求をサーバに送信します。同時に、サーバ グループが一定期間変更されていない場合は、最もビジーなサーバをサーバ グループから削除して、レプリケーションの度合いを減らします。

負荷分散アルゴリズム 7. 宛先ハッシュ

「ターゲット アドレス ハッシュ」スケジューリング アルゴリズムは、要求のターゲット IP アドレスをハッシュ キーとして使用し、静的に割り当てられたハッシュ テーブルから対応するサーバーを検索します。サーバーが使用可能で過負荷でない場合は、要求がサーバーに送信され、そうでない場合は何も返されません。

負荷分散アルゴリズム 8. ソースハッシュ

「ソース アドレス ハッシュ」スケジューリング アルゴリズムは、要求のソース IP アドレスをハッシュ キーとして使用し、静的に割り当てられたハッシュ テーブルから対応するサーバーを検索します。サーバーが使用可能で過負荷でない場合は、要求がサーバーに送信され、そうでない場合は何も返されません。

これらのアルゴリズムの原理を理解することで、特定のアプリケーションに最適なスケジューリング アルゴリズムを選択し、リアル サーバーを最大限に活用できるようになります。もちろん、独自のアルゴリズムを開発することもできますが、これはこの記事の範囲外です。アルゴリズムの原理に関する関連情報を参照してください。

<<:  データベース列ストレージ: 最適な圧縮アルゴリズムを設計するための近道

>>:  ロードバランサーのアルゴリズムと原理を探る

ブログ    
ブログ    

推薦する

変化が起こっています!機械学習は人類をどこへ導くのでしょうか?

[[187530]]人工知能 (AI) がどのように未来を予測し、職場を変え、さらには雇用を生み出...

Objective-C でのソートアルゴリズムを学ぶ

データ構造とアルゴリズムを学習していたとき、ソートアルゴリズムをアニメーションで表現して、理解しやす...

...

TIC 2018: クラウド サービスが人工知能の急速な発展を支援

[51CTO.comよりオリジナル記事] 中国の大手中立クラウドサービスプロバイダーUCloudが主...

3Dを理解する言語モデルが登場! UCLA、上海交通大学、MITなどが共同で3D-LLMを提案:パフォーマンスが9%向上

大規模言語モデル (LLM) と視覚言語モデル (VLM) は、画像からの発話や常識的な推論の実行な...

AIはイノベーションを通じて気候への影響を補うことができるでしょうか?

最も熱心な気候変動監視者でさえ希望を抱いている。なぜなら、人類の革新と技術が私たちをこの混乱に陥れた...

...

...

...

Boyaのディープラーニング製品がHuman Horizo​​nsの自動運転実現に貢献

ヒューマンホライゾンズテクノロジーズ株式会社は、新エネルギー車、インテリジェントネットワーク、共同交...

360スマートブレインモデルが一般公開されました

9月5日、360 Intelligent Brainモデルが今後一般公開され、360の「ファミリーバ...

人工知能が伝統文化に新たな命を吹き込む。パンダ型ロボット「Youyou」が国境を越えて「新年クロストーク会議」に参加

「パンダはトークができる、パンダはジョークを言うことができる、パンダは書道を書ける、そしてパンダはチ...