ホームページ  >  記事  >  運用・保守  >  負荷分散のための一般的なアルゴリズムの紹介

負荷分散のための一般的なアルゴリズムの紹介

王林
王林転載
2020-06-16 16:40:133930ブラウズ

負荷分散のための一般的なアルゴリズムの紹介

負荷分散に一般的に使用されるアルゴリズム:

1. ラウンドロビン

ポーリングは負荷分散です。シンプルなアルゴリズムなので、追加のパラメータを設定する必要はありません。構成ファイル内に M 台のサーバーがあると仮定すると、アルゴリズムはサーバー ノード リストを走査し、ノード順に各ラウンドで 1 台のサーバーを選択してリクエストを処理します。すべてのノードが一度呼び出されると、アルゴリズムは最初のノードから再度探索します。

特徴:

このアルゴリズムの各リクエストは、時系列順に 1 つずつ異なるサーバーに割り当てられて処理されるため、各サーバーが実行するサーバーのパフォーマンスが同等のクラスター状況に適しています。同じ負荷です。ただし、サーバーのパフォーマンスが異なるクラスターの場合、このアルゴリズムでは不当なリソース割り当てなどの問題が発生しやすくなります。

2. 加重ポーリング

通常のポーリングによるデメリットを回避するために、加重ポーリングが登場しました。加重ポーリングでは、各サーバーに独自の加重値が設定されます。一般に、重みの値が大きいほどサーバーのパフォーマンスが向上し、より多くのリクエストを処理できるようになります。このアルゴリズムでは、クライアントのリクエストはその重みに比例して割り当てられ、リクエストが到着すると、最も大きな重みを持つサーバーが最初に割り当てられます。

機能:

加重ポーリングをサーバーのパフォーマンスが異なるクラスターに適用して、リソースの割り当てをより合理的にすることができます。

中心となるアイデアは、各サーバー ノードを走査してノードの重みを計算することです。計算ルールは、current_weight とそれに対応するEffective_weight の合計です。走査の各ラウンドで、最大の重みを持つノードがノードとして選択されます。最適なサーバーノード。このうち、Effective_weight はアルゴリズム実行時のリソース状況やレスポンス状況によって変化します。

3. IP ハッシュ (IP ハッシュ)

ip_hash は、リクエストを行ったクライアント IP のハッシュ値に基づいてサーバーを割り当てます。このアルゴリズムにより、すべてのリクエストが確実に実行されます。同じ IP から送信されたリクエストは同じサーバーにマッピングされるか、同じハッシュ値を持つ異なる IP が同じサーバーにマッピングされます。

特徴:

このアルゴリズムは、クラスター展開環境でセッションが共有されない問題をある程度解決します。

推奨チュートリアル: nginx チュートリアル

以上が負荷分散のための一般的なアルゴリズムの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.imで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。