On Wed, May 28, 2014 at 4:47 PM, Jon Bogaty <[email protected]> wrote:
> Brilliant Baptiste, thank you. I've setup proper logging and a longer
> timeout:
>
> global
>     user nobody
>     group nobody
>     daemon
>     nbproc 4
>     maxconn 204800
>     log /dev/log local0 info
>     log /dev/log local0 notice
>
>     tune.bufsize 16384          # 16k
>     tune.rcvbuf.server 141312   # 128k
>
> defaults
>     log global
>     option httplog
>     option dontlognull
>
>     mode http
>     backlog 32768
>     maxconn 204800
>
>     timeout connect 120ms              # how long to try to connect to a
> backend
>     timeout queue 120ms                # how long a request can wait for a
> backend before 503ing
>     timeout server 15s               # how long to wait for response from
> backend before 503ing
>
>     timeout client 60000ms            # how long to wait for data from
> clients (exchanges)
>     timeout http-keep-alive 60000ms   # how long to keep keepalive sessions
> when inactive
>
>     option abortonclose
>     no option forceclose
>     option http-no-delay
>     option nolinger
>
> I'm down to 1 or 2 504s in a 1000... It's weird though, doesn't seem to be
> making a difference whether I go to 10s or 15, still got these last one or
> two pesky 504s. Anything else I could be missing?
>
>
> On Wed, May 28, 2014 at 10:04 AM, Baptiste <[email protected]> wrote:
>>
>> On Wed, May 28, 2014 at 3:56 PM, Jon Bogaty <[email protected]> wrote:
>> > Hi Baptiste,
>> > I'm sorry, I should clarify, I meant 504. It's really quite prevalent,
>> > at
>> > least 4/10 at times, sometimes 8/10...
>> >
>> > I'm using:
>> > HA-Proxy version 1.4.24 2013/06/17
>> >
>> > This is more or less the way the entirety of the configuration is:
>> > global
>> >     user nobody
>> >     group nobody
>> >     daemon
>> >     nbproc 4
>> >     maxconn 204800
>> >
>> >     tune.bufsize 16384          # 16k
>> >     tune.rcvbuf.server 141312   # 128k
>> >
>> > defaults
>> >     log global
>> >     option tcplog
>> >     option dontlognull
>> >
>> >     mode http
>> >     backlog 32768
>> >     maxconn 204800
>> >
>> >     timeout connect 120ms              # how long to try to connect to a
>> > backend
>> >     timeout queue 120ms                # how long a request can wait for
>> > a
>> > backend before 503ing
>> >     timeout server 120ms               # how long to wait for response
>> > from
>> > backend before 503ing
>> >
>> >     timeout client 60000ms            # how long to wait for data from
>> > clients (exchanges)
>> >     timeout http-keep-alive 60000ms   # how long to keep keepalive
>> > sessions
>> > when inactive
>> >
>> >     option abortonclose
>> >     no option forceclose
>> >     option http-no-delay
>> >     option nolinger
>> >
>> > frontend openx
>> >     bind *:9010
>> >     default_backend bidder9010
>> >
>> >     backend bidder9010
>> >     balance roundrobin
>> >     server bid001 10.1.1.50:9010 weight 1 maxconn 51200 check
>> >     server bid002 10.1.1.112:9010 weight 1 maxconn 51200 check
>> >     server bid003 10.1.1.113:9010 weight 1 maxconn 51200 check
>> >     server bid004 10.1.1.114:9010 weight 1 maxconn 51200 check
>> >     server bid005 10.1.1.115:9010 weight 1 maxconn 51200 check
>> >     server bid007 10.1.1.117:9010 weight 1 maxconn 51200 check
>> >     server bid008 10.1.1.118:9010 weight 1 maxconn 51200 check
>> >     server bid009 10.1.1.119:9010 weight 1 maxconn 51200 check
>> >     server bid010 10.1.1.120:9010 weight 1 maxconn 51200 check
>> >     server bid011 10.1.1.127:9010 weight 1 maxconn 51200 check
>> >     server bid012 10.1.1.128:9010 weight 1 maxconn 51200 check
>> >     server bid013 10.1.1.126:9010 weight 1 maxconn 51200 check
>> >     server bid014 10.1.1.203:9010 weight 1 maxconn 51200 check
>> >     server bid015 10.1.1.204:9010 weight 1 maxconn 51200 check
>> >     server bid016 10.1.1.205:9010 weight 1 maxconn 51200 check
>> >
>> > Basically haproxy balances a set of those bidder backends from port 9010
>> > to
>> > 9080... Does that clarify things?
>> >
>> >
>> > On Wed, May 28, 2014 at 9:40 AM, Baptiste <[email protected]> wrote:
>> >>
>> >> On Wed, May 28, 2014 at 3:31 PM, Jon Bogaty <[email protected]> wrote:
>> >> > Hi,
>> >> > I have two questions... I am having a lot of problems with 500 errors
>> >> > from
>> >> > haproxy and I am wondering if these could be two culprits:
>> >> >
>> >> >  Is there an equivalent method for disabling Nagle Algorithm in TCP
>> >> > mode?
>> >> > I've looked everywhere and it seems that TCP NO DELAY is not a flag
>> >> > within
>> >> > haproxy. Only http mode seems to include the option.
>> >> >
>> >> > Could nbproc possibly have a negative effect as opposed to a
>> >> > beneficial
>> >> > one?
>> >> > Is it possible that by setting nbproc to four we're actually creating
>> >> > problems with scalability and with the number of concurrent working
>> >> > connections?
>> >> >
>> >> > I can post pieces of my haproxy.cfg if it helps explain how I'm
>> >> > building
>> >> > out
>> >> > the load balancing. I feel like somewhere in my config there's
>> >> > something
>> >> > incorrectly tuned that's causing connection problems. Any help would
>> >> > be
>> >> > greatly appreciated.
>> >> >
>> >> > Thanks!
>> >> > Jon
>> >>
>> >>
>> >> Hi Jon,
>> >>
>> >> Please post at least your HAProxy version, how you built/installed it,
>> >> etc...
>> >> configuration, logs showing the errors are welcome too.
>> >>
>> >> Note that HAProxy is not supposed to generate any 500 errors (only
>> >> 502, 503, 504)
>> >>
>> >> Baptiste
>> >
>> >
>>
>>
>> Could you please turn on "option httplog" and remove the tcplog option?
>>
>> 504 means the server did not answer fast enough (longuer than the
>> timeout server).
>> Just increase the timeout server a bit and see what happens.
>> We usually set it up to a few seconds (less than 20).
>>
>> Baptiste
>
>

if the page takes longer than 15s to be generated, then the issue must
be in the application.
now, the log can tell you which URLs has generated the 504 ;)
It's up to you to play.

Baptiste

Reply via email to