nginxの負荷分散アルゴリズムと実装の

  1. アルゴリズム

1.1ポーリング(ラウンドロビン)

ポーリングアルゴリズムは、各要求は、各サーバーに順番に送られます。図は、6つのクライアントの合計が要求6、注文(1、2、3、4、5、6)の6つの要求を生成します。最後に、(1、3、5)要求は、要求がサーバ2に送信する(2、4、6)、サーバ1に送信されます。

このアルゴリズムは、性能の存在に違いがある場合は、サーバーのパフォーマンスの低下は、負荷の多くを負担しないことがあり、ほぼすべてのサーバーのパフォーマンスのシナリオに適しています。以下は、サーバー2のパフォーマンスは、サーバより悪い、サーバ2は、多くの負荷を負担しないことがあります。

1.2 WRR(重み付けラウンドロビン)

WRRは、ポーリングに基づいて、サーバのパフォーマンスの違いに応じて、サーバは、特定の重みを与えられます。例えば、図1の加重値をサーバ5に与えられ、右側にサーバ2は、(6)要求、次いで(1、2、3、4、5)要求をサーバ1に送信され、1の値が与えられます2がサーバーに送信されます。

1.3最小接続(最小接続)

接続要求がその都度、または加重ラウンドロビンポーリング同じではないので、負荷の不均衡を引き起こし、現在接続されているサーバの大きな数、小さな複数の接続された他のサーバを行うことができます。例えば、図面は、サーバ1(1、3、5)要求を送信しているが、(1、3)迅速に切断され、これだけ時間(5)は、サーバへの接続を要求する;(2、4、6 )要求をサーバ2に送信され、彼らは接続を切断していないが、引き続き実行され、サーバ2は、多くの負荷を想定します。

最小接続アルゴリズムは、最近サーバ番号に接続されている以上に要求を送信することです。例えば、図において、1は、現在のサーバに最小の番号に接続され、その要求はサーバ1〜6を送信します。

1.4加重最小コネクション(加重最小コネクション)

最小の接続に基づいて、各サーバのサーバのパフォーマンスに係る重みを割り当てられ、その後、重みに従って処理できるサーバごとの接続の数を再計算します。

1.5確率的アルゴリズム(ランダム)

ランダムなサーバーに送信された要求。そして、アルゴリズムと同様ポーリングアルゴリズムは、ほとんどのサーバーのパフォーマンスのシナリオに適しています。

公開された33元の記事 ウォンの賞賛0 ビュー847

おすすめ

転載: blog.csdn.net/ninth_spring/article/details/104752630