我目前已在 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 的前端。