我有英镑安装在负载均衡器上。 它似乎工作正常,除了它随机分配后端服务器转发请求。 我已经把1台后端机器放在了很大的负载下,并且使用了swap,我甚至不能用ssh来testing这个场景。 我希望负载平衡器意识到机器已经过载,并将其发送到不同的后端机器。 但是它不。 我读过手册页,看起来像指令“DynScale 1”是监视这个,但它仍然redirect到超载的服务器。 我也把“HA端口22”放在后端,因为我不能SSH,负载平衡器也不会考虑后端服务器,直到它摆脱了负载和响应,但没有帮助无论是。
如果有人可以帮助,我会很感激。 我目前的configuration如下。
################################################## ####################
##全局选项:
用户“www-data”
组“www-data”
#RootJail“/ chroot / pound”
##logging:(默认情况下进入系统日志)
## 0没有logging
## 1正常
## 2扩展
## 3 Apache风格(通用日志格式)
LogLevel 3
##每隔X秒检查一下后端:
活着5
DynScale 1
客户端1200
TimeOut 1500
#poundctl控制套接字
控制“/var/run/pound/poundctl.socket”
################################################## ####################
##听,redirect和...到:
##将端口80上的所有请求redirect到SSL
ListenHTTP
地址192.168.1.XX
港口80
服务
redirect“https://xxx.com/”
结束
结束
ListenHTTPS
地址192.168.1.XX
港口443
Cert“/files/www.xxx.com.pem”
服务
后端
地址192.168.1.1
港口80
HAport 22
结束
后端
地址192.168.1.2
港口80
HAport 22
结束
结束
结束
根据您的timeout设置,Pound等待25分钟以获得后端响应。 在testing过程中将其设置为较低的值,例如15秒的默认值。
我听到了有关DynScale功效的非常不同的观点。 我们select不使用它。 我们所做的是为每个BackEnd部分设置Priority BackEnd 。 从手册页:
优先值
这个后端的优先级(1和9之间,5是默认值)。 较高优先级的后端将比较低优先级的后端更频繁地使用,因此您应该为更有能力的服务器定义更高的优先级。
您的新ListenHTTPS部分应该如下所示:
ListenHTTPS Address 192.168.1.XX Port 443 Cert "/files/www.xxx.com.pem" Service BackEnd Address 192.168.1.1 Port 80 Priority 7 End BackEnd Address 192.168.1.2 Port 80 Priority 3 End End End
在每个BackEnd尝试不同的Priority值,直到您满意如何分配负载。
您应该在使用PriorityclosuresDynScale ,否则Pound会尝试根据实际使用情况为您调整值。
另外,你也许应该设置更高的活动,比如30秒。 如果你的服务器被埋没在负载之下,你不希望庞德每5秒钟踢一次,看它是否恢复。
最后,我同意@Andrew。 您的Timeout值应该低得多。 去一些适度的东西,比如300(5分钟)。
如果您直接将负载stream量发送到其中一台后端机器(即不经过磅),则无法检测负载。
Pound只会尝试后端的80端口(实际上它会响应初始的TCP握手,SYN / ACK等,但不会超过这个),并且会等到你指定的超时时间。
尝试通过Pound发送您的负载stream量,并试验后端优先级和DynScale。 Pound使用连接到后端的开放连接数来计算负载均衡。
另外,请检查“poundctl”命令以查看服务/后端的一些统计信息。