由于Perlbal的内存使用,我们最近从Perlbal迁移到HAProxy。 尽pipe最近我们遇到了一个我似乎无法解决的问题(这并不能帮助我不熟悉HAproxy的configuration选项),但这是相当完美的迁移。
我们是一个媒体网站,提供相当数量的stream量 – 我们使用HAProxy在我们的媒体服务器上传播负载。 一旦开始HAProxy一切都是活泼的,并相应地工作 – 虽然大约10-20分钟后事情开始放缓,媒体服务非常缓慢。 我相当肯定这是HAProxy,因为简单的服务重新启动纠正了这个问题。
我正在使用一个相当香草HAProxyconfiguration没有钟声或口哨声:
默认
日志全球
模式http
选项httplog
选项dontlognull
重试3
选项重新发布
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
听媒体0.0.0.0:80
平衡roundrobin
服务器media_1 xxxx:8080重量1 maxconn 1024检查
服务器media_2 xxxx:8080重量1 maxconn 1024检查
任何人都可以解释一下问题可能是什么?
你的configuration确实很简单。 我看到你没有“selecthttpclose”,你有一个非常低的“maxconn”,也许你只是在高负载下连接不上? 你一定要启用这个选项。 你也应该启用stats页面,在“listen”部分添加“stats uri / haproxy-stats”。 然后,您将浏览器连接到您网站上的该URL,您将看到并发连接,每秒连接数,错误等等的所有统计数据……这将对您有所帮助。
哦,这是什么版本? 1.3.16有一个令人讨厌的bug,使得它在一些stream量模式下吃了很多CPU。 你应该使用1.3.18或1.3.15.X.
威利
由于它随着时间的推移发生,可能是某种资源枯竭。
你在监视各种可用内存统计和处理器使用情况吗?
我要说的第一件事是启用HAProxy统计页面,也许还有日志logging。
您的后端Web服务器也可能拒绝来自单个IP的太多连接。 使用HAProxy(不包含tproxy),可以看到来自负载平衡节点的请求。 这可能会造成这样的问题。