web-dev-qa-db-ja.com

HAProxyヘルスチェック

同じトピックに関連する3つの小さな質問があります。

  1. HAProxyを使用して、さまざまなサーバーの現在の負荷に基づいて負荷分散する方法はありますか(つまり、最も負荷の少ないサーバーに要求をルーティングします)。
  2. そうでない場合、なぜこの動作がHAProxyに組み込まれていないのですか? メジャーこれを行うことによるパフォーマンスへの影響はありますか?たとえば、最小の接続(leastconnアルゴリズム)を探す代わりに、最小の負荷を探すことを想像します。
  3. これを行うことによるパフォーマンスへの大きな影響がない場合、パフォーマンスに影響を与えることなく、この機能をカスタムHAProxyディストリビューションに組み込むことができると思いますか?
3
alan

Haproxyでこれを行う唯一の方法は、haproxyのヘルスチェックをチェックするスクリプトを作成することです。スクリプトでは、負荷平均をチェックしており、それが有効な負荷であるかどうかを確認しています。応答コード200を返します。高すぎる場合は、404または500エラーを返します。 haproxyチェックは次のようになります

option httpchk HEAD /health_check.php HTTP/1.0

haproxyが2xx/3xx応答を検出した場合、それは有効になります。それ以外の場合は、ノードの負荷が低下し、health_check.phpスクリプトが200を返すまで、そのノードをオフラインにします。

6
Mike