概述
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
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 30000
so 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的全部内容,希望文章能够帮你解决Haproxy 在服务可用情况下返回503所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复