On Mon, Feb 23, 2009 at 12:12:43PM -0800, Michael Fortson wrote: > Feb 23 18:50:22 www haproxy[15344]: 11.1.11.1:45025 > [23/Feb/2009:18:50:21.939] webservers fast_mongrels/<NOSRV> > 0/101/-1/-1/101 503 212 - - sQ-- 322/309/9/0/0 0/1 "GET > /blahblah/update/57f6c2408f HTTP/1.1" > > sQ The session spent too much time in queue and has been expired. See > the "timeout queue" and "timeout connect" settings to find out how > to > fix this if it happens too often. If it often happens massively in > short periods, it may indicate general problems on the affected > servers due to I/O or database congestion, or saturation caused by > external attacks. > > Here's the relevant config: > mode http > retries 20 > option abortonclose > option redispatch > > > timeout connect 100 # time waiting for backend server to accept > timeout client 80s # data from client (browser) > timeout server 120s # data from server (mongrel) > > > It looks like tW timed out (101 > 100), but shouldn't it have retried? > Retries shows 0....
No, it should not retry because the connection attempt timed out. The retries are performed when the connection is refused by the server (in most cases, during a quick restart). Normally, with a correct connect timeout, the system will perform the retries by itself, reason why we don't need haproxy to add retries on top of that. I'm used to set the timeout connect to 4 or 5 seconds. Here you have 100ms which is very small and does not allow even one retransmit (3s). Also I see something odd in your log. The connect time being -1, it's the queue time which is reported as 100ms, which is wrong. I should fix that so the queue time still remains zero and the total time 101. Regards, Willy

