Haproxy 在服务可用情况下返回503

xiaoxiao2021-02-28  12

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 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
转载请注明原文地址: https://www.6miu.com/read-1100071.html

最新回复(0)