HAProxy 1.5.4 性能调优

HAProxy 1.5.4 性能调优

我目前已在 centos 7 上使用 keepalived 为 HA 设置了 HAProxy 1.5.4,使用 IPtables 创建了一个透明的负载均衡器,以对在 vmware 和 cisco UCS 上运行的约 15,000 个用户的基础架构上的多个 cisco WSA 代理服务器进行负载平衡,并使用一个 GB 网卡。

一切都运行良好,直到负载增加,起初我意识到前端的 maxconn 设置为默认设置,现在已经更改为 5000。

我是 HAProxy 的新手,仅按照我们的交换环境指南进行了设置,有人能指出我下面配置中的任何明显问题以及我可以进行的任何性能改进吗?

编辑 用户报告称互联网连接不足,这通常发生在当前会话达到 2,500-3000 左右时。

HAProxy 配置:

global
    daemon
    log /dev/log local4
    maxconn 40000
    ulimit-n 81000

defaults
    log global
    timeout connect 4000
    timeout client 42000
    timeout server 43000
    mode http

frontend http-in
    bind *:80
    maxconn 5000
    default_backend backend_servers
    option  forwardfor
    option http-server-close

backend backend_servers
    balance leastconn
    stick-table type ip size 10240k expire 10m
    stick on src
    server  wsa01 10.80.10.111:80 check inter 30000 fall 5
    server  wsa02 10.80.10.112:80 check inter 30000 fall 5
    server  wsa03 10.80.10.113:80 check inter 30000 fall 5
    source 0.0.0.0 usesrc clientip

listen stats *:7000
   stats enable
   stats hide-version
   stats refresh 30s
   stats show-node
   stats uri     /
   stats auth    admin:REDACTED

IPtables 配置:

*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:DIVERT - [0:0]
-A PREROUTING -p tcp -m socket -j DIVERT
-A DIVERT -j MARK --set-xmark 0x6f/0xffffffff
-A DIVERT -j ACCEPT
COMMIT

为 iptables 添加到 rc.local:

iptables -t mangle -N DIVERT
iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT
iptables -t mangle -A DIVERT -j MARK --set-mark 111
iptables -t mangle -A DIVERT -j ACCEPT
ip rule add fwmark 111 lookup 100
ip route add local 0.0.0.0/0 dev lo table 100

Keepalived配置:

! Configuration File for keepalived

global_defs {
notification_email {
    REDACTED@EMAIL
}
notification_email_from REDACTED@EMAIL
smtp_server 10.80.11.200
smtp_connect_timeout 30
}

vrrp_script chk_haproxy {
script "killall -0 haproxy" # this will check if the haproxy is up
interval 45 # check every 5 seconds
weight 2 # add 2 points of priority if OK
}

vrrp_instance VI_1 {
interface ens32
state MASTER # or "BACKUP" on backup
priority 101 # 101 on master, 100 on backup
virtual_router_id 60

smtp_alert # Activate SMTP notifications, you can remove this if you dont want alerts

authentication {
    auth_type PASS
    auth_pass REDACTED
 }

virtual_ipaddress {
    10.80.10.200
}
track_script {
    chk_haproxy
}
}

在此先非常感谢您的帮助...

字谜

答案1

您可以添加nbproc N到 Global,其中 N 是服务器上的核心数。这将使 HAproxy 使用所有核心。您可以将处理器组分配给不同的前端和后端,例如,优先考虑执行 SSL 的前端。

相关内容