@mattmonkey wrote:
Hi,
We've noticed a strange change in keep alive behaviour since version 1.7.6 - Connections are being held open until
timeout clientis met.The request is served to the client in the normal time, but nothing is logged until the timeout is met. The logs then report the total session duration time as just over the
timeout clientvalue and if another request is made by the browser within the timeout the connection is reused.We'd normally expect the request to be logged straight after completion, the timings reflect the request duration seen from the browser and for the connection only to be reusable within our
timeout http-keep-alivewhich is set much lower than ourtimeout client.This is not happening on our backends with
option forceclose(we need to do that for certain user agents).Confirmed it is
timeout clientdriving this behaviour by setting to an usual value e.g. -
timeout client 43sin the config
Request is served to the browser in 615ms
Request timings in log -"Th":155,"Ti":-1,"TR":149,"tq":303,"Tw":0,"Tc":1,"Tr":34,"Ta":43339,"Tt":43339(We JSON format them)Has anyone else noticed similar? When we tried to go live on 1.7.6 and later 1.7.7 we saw a massive performance hit because we exhausted our connections (maxconn).
Snippets from our config -
defaults
log global
mode http
balance roundrobin
option abortonclose
option http-server-close
timeout connect 9s
timeout client 60s
timeout server 60s
timeout check 5s
timeout http-keep-alive 5sbackend appserver-backend
http-check send-state
balance roundrobin
cookie JSESSIONID prefix
option httpchk HEAD /monitors/check
option persist
option redispatch
option http-pretend-keepalive
Posts: 1
Participants: 1