我目前正在测试haproxy,以负载平衡我们的时事通讯生成。我们为客户打造个性化的时事通讯。
为此,我们使用两个we服务器(相同的机器)和一个“邮件引擎”。邮件引擎调用The服务器,然后返回个性化的html时事通讯。
现在的问题是,一个the服务器的cpu负载约为75%,而另一个服务器仅运行15%。在测试时查看“会话速率”,两台服务器的“会话速率-> Cur”始终在3到4之间。
但是当查看“会话”时,这里的“会话-> Cur”共有10,web服务器1的"Cur“为8,而另一个web服务器的值介于0到2之间。
为什么第一个web服务器上会有8个会话,而另一个服务器上会有0-2个会话?
这是我的配置:
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
maxconn 2000
timeout connect 5000
timeout client 50000
timeout server 50000
listen mailgenerator 10.46.70.75:80
mode http
stats enable
balance roundrobin
option httpclose
option forwardfor
option httpchk HEAD /robots.txt
server mail1 192.168.70.11:80 check weight 100
server mail2 192.168.70.12:80 check weight 100发布于 2011-06-17 08:56:54
如果你使用圆形知更鸟,那么无论负载大小,连接都会在到达时均匀分布。因此,如果您有一个较慢的服务器或一个较慢的进程,它可以在其中一个上建立一个队列,而另一个则是空闲的。
如果使用最小均衡器并设置每个服务器的较低maxconn以使连接在each中而不是在每台服务器上排队,则可以获得更均匀的分布。
发布于 2011-06-17 15:09:01
对于http来说,当前的会话并不意味着什么。会话道达尔和LbTot更好地代表了服务器是如何平衡的。如果这些数字相当相等,则可能是在一台服务器上导致它处理请求的速度更慢,从而推高了负载。
https://serverfault.com/questions/281389
复制相似问题