我在两台提供图像的应用服务器前运行 haproxy 负载均衡器。问题是,如果我使用一台或两台服务器,性能不会有差异(参见添加的图像)。我使用 Digital Ocean 作为 Vps 的提供商。VPS 运行 nginx,
使用两台服务器进行加载:
使用 1 台服务器进行加载:
global
log 127.0.0.1 local0 notice
maxconn 10000
user haproxy
group haproxy
chroot /var/lib/haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
contimeout 5000
clitimeout 50000
srvtimeout 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
frontend www
bind 12.34.56.789:80
option http-server-close
default_backend web-backend
backend web-backend
balance roundrobin
server web-1 12.34.56.789:80 check
server web-2 12.34.56.789:80 check
答案1
如果您的应用程序花费太多时间来发送响应,那么在负载均衡器后面添加更多服务器将无济于事。
这是反应时间定律。
负载均衡器不会改善您的响应时间,因为他需要等待应用程序服务器的响应来为客户端提供服务,在此期间连接保持建立并等待状态。
您的最大响应时间约为 70 秒,并且有 +17000 个请求超时(这不太好)。这是应用程序问题。
还要确保您的数据库可以处理这些数量的连接。
More application servers = more database connections
。