web-dev-qa-db-ja.com

LinuxでHAProxyを構成して、10Kの同時接続を受け入れる

私はHAProxy1.5をUbuntu14.04(変更済み)で実行しています。 httpおよびhttpsポートでの接続を受け入れます。 2つのバックエンドアプリケーションが永続的な接続を使用してリクエストを処理します。

約2200のクライアント接続を作成すると、haproxyは追加の接続の受け入れを停止します。しかし、私はこのシステムが少なくとも10Kの同時接続を受け入れることを望んでいます。

接続統計は次のとおりです。

# ss -s
TCP:   4119 (estab 4098, closed 6, orphaned 0, synrecv 0, timewait 6/0), ports 0

Transport Total     IP        IPv6
TCP       4113      4106      7
INET      4128      4117      11

プロセス用に開くファイルの最大数をすでに調整しました。

# cat /proc/1012/limits
Limit                     Soft Limit           Hard Limit           Units
Max open files            240017               240017               files

私のhaproxy.configファイル:

global
    log /dev/log syslog debug
    daemon
    user haproxy
    group haproxy
    maxconn 120000
    spread-checks 4

defaults
    log global
    timeout connect 30000ms
    timeout client 300000ms
    timeout server 300000ms

frontend http-in
    mode http
    bind :80
    option httplog
    option forwardfor
    reqadd X-Forwarded-Proto:\ http
    default_backend http-routers

frontend https-in
    mode http
    bind :443 ssl crt /opt/haproxy/cert.pem no-sslv3
    option httplog
    option forwardfor
    option http-server-close
    reqadd X-Forwarded-Proto:\ https
    default_backend http-routers

frontend ssl-in
    mode tcp
    bind :4443 ssl crt /opt/haproxy/cert.pem no-sslv3
    default_backend tcp-routers

backend http-routers
    mode http
    balance roundrobin
        server node0 192.168.10.2:80 check inter 1000
        server node1 192.168.10.2:80 check inter 1000

backend tcp-routers
    mode tcp
    balance roundrobin
        server node0 192.168.10.2:80 check inter 1000
        server node1 192.168.10.2:80 check inter 1000
2
lexsys

私の知る限り、リッスンブロックmaxconnはグローバルmaxconnとは異なります。グローバルmaxconnを使用すると、haproxyプロセスが処理できる最大接続数を制限できます。

Listen /フロントエンドセクションには独自のmaxconnがあり、リスナーごとの接続数を制限します。したがって、フロントエンドセクションでもmaxconnを設定するか、少なくともデフォルトセクションで設定してみてください。

だからどちらか:

 defaults
     maxconn 10000

または、フロントエンドごとに設定します。

2
Jakov Sosic

HAProxyマシンのハードウェア構成は何ですか?コア、RAM、ネットワークインターフェイスなど

多くのHAProxyパフォーマンスの問題が発生しました。ここにいくつかのアイデアがあります:

  1. トラフィックを2つのHAProxyサーバーに分割し、それぞれが他方のバックアップとして機能します。

  2. Raise nbproc は、特定のハードウェアのコア数を反映します。

  3. レイヤー7モードを使用している場合は、スループットを向上させるためにレイヤー4モードにドロップダウンできるかどうかを確認してください。

0
dmourati