Haproxy 在服务可用情况下返回503
2017-09-23 11:54
169 查看
1.异常分析:
haproxy集群作为负载代理,底层挂着多个服务程序,20w个用户同时并发请求,在100%请求协议为http情况下服务良好,无异常;当请求为websocket 75% http30%情况下,出现大量503服务不可以异常。首先查看底层服务器,底层服务器运行平稳,压力未满,对应的503请求未发送到底层服务器,查看haproxy日志,发现大量如下日志:
>> - 503 625990 use 0.000304s
haproxy完全未将请求发送给底层服务器,haproxy接到这个请求后立马就返回503。神奇的现象,首先可以判断为haproxy问题;
到底是什么问题导致了haproxy在底层服务器健康并且压力低的情况下任性的返回503呢,开启纠结之旅,排查服务器配置:
[root@A33 ~]# ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 515033
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 627680
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 60240
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
这配置应对如此量的请求完全无压力况且100% http请求的情况下无问题,突然脑袋一霎被神光照亮,websocket为长连接,http连接会释放,难道是haproxy允许最大连接数配置限制了?开启验证之旅
2.问题处理及验证:
查看haproxy配置:maxconn 30000so funny 3W连接,虽然是haproxy集群,但是请求分发一不均衡,单台超过3w长连接那不就是搞笑么。没话说,调整maxconn到10w,完美解决,不废话了,直接上图,单台haproxy在运行情况下有出现连接超过3w的情况:
public | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Queue | Sessions | Bytes | Denied | Errors | Warnings | Server | ||||||||||||||||||
Cur | Max | Limit | Cur | Max | Limit | Total | LbTot | In | Out | Req | Resp | Req | Conn | Resp | Retr | Redis | Status | Wght | Act | Bck | Chk | Dwn | Dwntme | Thrtle |
Frontend | 18214 | 18214 | 100000 | 36935 | 14534490 | 4419713 | 0 | 0 | 157 | OPEN | ||||||||||||||
ipdb | local 0 | redirect 0 |
相关文章推荐
- Haproxy 在服务可用情况下返回503
- 【Docker】基于docker+etcd+confd + haproxy构建高可用、自发现的web服务
- HttpWebRequest抓取网页数据返回异常:远程服务器返回错误: (503) 服务器不可用
- haproxy配置验证nova服务高可用
- 基于docker+etcd+confd + haproxy构建高可用、自发现的web服务(转载)
- http/1.1 503服务不可用
- QQ邮箱 503 : HTTP Error 503 服务暂时不可用,请刷新重试
- HTTP 503 错误 – 服务不可用 (Service unavailable)
- Haproxy+keepalived高可用代理服务
- (java)获取某文件夹下面所有的指定类型的文件名称,并根据情况返回可用的名称
- QQ邮箱 503 : HTTP Error 503 服务暂时不可用,请刷新重试
- keepalived+haproxy实现web服务的高可用和负载均衡
- linux企业常用服务---haproxy+nginx搭建web高可用集群
- keepalived+haproxy实现web服务的高可用和负载均衡
- haproxy结合keepalived实现httpd的高可用服务
- 基于docker+etcd+confd + haproxy构建高可用、自发现的web服务
- HTTP 503 错误 – 服务不可用 (Service unavailable)
- 修复 http 503 服务不可用
- 网站出现503(503 Service Temporarily UnavailableThe requested)服务暂时不可用的解决方法小结
- HttpWebRequest抓取网页数据返回异常:远程服务器返回错误: (503) 服务器不可用