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 アドレスをハッシュ キーとして使用し、静的に割り当てられたハッシュ テーブルから対応するサーバーを検索します。サーバーが使用可能で過負荷でない場合は、要求がサーバーに送信され、そうでない場合は何も返されません。

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

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

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

推薦する

ショック! Google がショウジョウバエの脳全体を自動で再構築: 40 兆ピクセルの画像が初めて公開されました。

昨日、Google はハワード・ヒューズ医学研究所 (HHMI) およびケンブリッジ大学と共同で、シ...

データだけ? 2018 年の AI 予測トップ 5

[[213487]] 2017年、人工知能(AI)は職場でも家庭でも、ほとんどの人々の日常生活の一...

PyTorch を軽量化します。このディープラーニング フレームワークは価値があります。 GitHub 6.6k スター

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

日本政府は国民が人生のパートナーを見つけるのを支援するためにAI技術を活用することを計画している

完璧なパートナーを見つけることは、特に新型コロナウイルスによるロックダウンや隔離により対面でのコミュ...

人工知能によるモザイク除去ディープ CNN デノイザーと多層隣接コンポーネント埋め込みによるモザイク除去

モザイク除去のための人工知能、ディープ CNN デノイザーとモザイク除去のための多層隣接コンポーネン...

...

表現学習: 自然言語のための高度なディープラーニング

表現学習では、半教師あり学習と自己教師あり学習の特定の機能を通じて、モデルのトレーニングに必要なデー...

人工知能による画像認識では、データのラベル付けはどのように機能するのでしょうか?

画像処理技術の急速な発展に伴い、画像認識技術が生まれ、発展し、徐々に人工知能分野の重要な部分となり、...

過剰に防御的?モスクワのバス運転手は中国人乗客の身元を手動で確認し、顔認識システムの使用も許可されている。

最近、モスクワのバス運転手たちは少々パニックになっている。チャットグループでは、「バスの中でアジア人...

分散型コンセンサスアルゴリズム: 想像以上に複雑

1. 分散システムの難しさ張大鵬は難しい問題に遭遇した。彼らの会社には貴重なデータを保存しているサー...

クラウド セキュリティにおける生成 AI: アクションよりもノイズが多い? !

翻訳者 | ジン・ヤンレビュー | Chonglou人工知能はクラウド セキュリティの次の大きなトレ...

...

人工知能を搭載したロボットは私たちの生活からどれくらい離れているのでしょうか?

産業用ロボットは幅広い用途でますます利用されるようになっているわが国は世界最大かつ最も活発な産業用ロ...

劉慈欣は人工知能について語る: 前方にある知能と同じくらい人工知能も存在する。

[[248113]]画像出典: IDG Capital最近開催された2018年の「IDGキャピタル...

ロボットプログラムは人間のプログラマーのようにバグを修正する

[[247601]]プログラムにバグが含まれることは避けられず、バグを見つけて修正することはプログラ...