Hi Florian,

On Mon, Sep 05, 2011 at 02:56:15PM +0200, Florian Munz wrote:
> Hello,
> 
> we started rolling out haproxy to production last week and everything 
> seems to be working fine, except a few users are reporting seeing the 
> "408 Request Time-out" error page.
> 
> I didn't manage to reproduce it yet, it mostly seems to be users on 
> other continents.
> 
> My main problem is that these 408 don't show up in the haproxy log. Is 
> that normal?

No, you should definitely have them in your logs. Do you have other logs ?

> Or are they reported with a different status code and a 
> common termination flag?

The termination flags will generally be "cR" (client timeout during Request).

> My timeouts are set like this:
> 
>     timeout client            45s
>     timeout server            45s
>     timeout connect           5s
>     timeout queue             10s
>     timeout check             2s
>     timeout http-request      5s
>     timeout http-keep-alive   1s

You should probably increase your http-request timeout if users are
experiencing issues. 5s allows for one TCP retransmit (3s) and 2
extra seconds. Considering that some slow links (satellite, GPRS)
already exhibit several hundreds of ms of RTT, You're very likely
shooting the connection too fast from time to time.

I suggest that you increase it to 10s first. Similarly, it may be
worth increasing your keep-alive timeout (eg: 5-10s).

Last, though irrelevant to this issue, your queue timeout should
probably match your server timeout. The reason is that if you set
the server timeout that large, it probably is because you expect
that a few pages may occasionally be slow. Thus, if an incoming
request is waiting for a connection to be released, it makes sense
to consider that it might have to wait up to the time it takes for
a request to complete. Of course this is not completely true and
the average wait time will drop as the max number of server
connections increases, but you get the idea.

Regards,
Willy


Reply via email to