That's why the ML is there :)

Cheers

On Wed, Oct 2, 2013 at 9:49 AM, Tom Huybrechts <[email protected]> wrote:
> I can't believe I missed that...
> Thanks!
>
>
> On Wed, Oct 2, 2013 at 7:03 AM, Baptiste <[email protected]> wrote:
>>
>> Hi Tom,
>>
>> Your global maxconn parameter is not responsible of your issue.
>> That said it looks very low, so I recommend you to increase it (1000
>> sounds good to start, depends on your traffic level)
>>
>> Your server maxconn will queue connection when a server reaches 32
>> connections only.
>> Is there any reason why you're having so low value here as well?
>> It means the 33th connection (and the next ones as well) would be
>> queued on the server for 5s max (timeout queue).
>> Increasing the timeout queue won't fix the issue, it will only
>> increase the latency on the client side.
>> I would recommend increasing server's maxconn unless you have good
>> reasons to have so low values. If so, then you'll have to add more
>> servers in your backend to increase backend capacity.
>>
>> I also recommend reading HAProxy's documentation related to maxconn.
>>
>> Baptiste
>>
>>
>> On Tue, Oct 1, 2013 at 3:28 PM, Tom Huybrechts <[email protected]>
>> wrote:
>> >
>> > I have maxconn 256 and timeout 5s.
>> >
>> > Full configuration below. I don't think there's anything special about
>> > it...
>> >
>> > Tom
>> >
>> >
>> >
>> >
>> >
>> > global
>> >     daemon
>> >     maxconn 256
>> > log localhost local0
>> >
>> > defaults
>> >     balance source
>> > log global
>> > option log-separate-errors
>> > option tcplog
>> >     mode tcp
>> >     timeout connect 5000ms
>> >     timeout client 360000ms
>> >     timeout server 1800000ms
>> >
>> > listen stats :9876
>> >     mode http
>> >     stats enable
>> >     stats uri /
>> >
>> > listen dicom_104
>> >     bind 10.233.20.140:104
>> >     balance roundrobin
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 104 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 104 inter
>> > 2000
>> > listen dicom_105
>> >     bind 10.233.20.140:105
>> >     balance roundrobin
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 105 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 105 inter
>> > 2000
>> > listen dicom_106
>> >     bind 10.233.20.140:106
>> >     balance roundrobin
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 106 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 106 inter
>> > 2000
>> > listen dicom_107
>> >     bind 10.233.20.140:107
>> >     balance roundrobin
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 107 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 107 inter
>> > 2000
>> > listen dicom_108
>> >     bind 10.233.20.140:108
>> >     balance roundrobin
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 108 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 108 inter
>> > 2000
>> > listen dicom_109
>> >     bind 10.233.20.140:109
>> >     balance roundrobin
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 109 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 109 inter
>> > 2000
>> >
>> > listen hl7_2310
>> >     bind 10.233.20.140:2310
>> >     balance roundrobin
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 2310 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 2310 inter
>> > 2000
>> > listen hl7_2311
>> >     bind 10.233.20.140:2311
>> >     balance roundrobin
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 2311 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 2311 inter
>> > 2000
>> > listen hl7_2350
>> >     bind 10.233.20.140:2350
>> >     balance roundrobin
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 2350 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 2350 inter
>> > 2000
>> > listen hl7_2351
>> >     bind 10.233.20.140:2351
>> >     balance roundrobin
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 2351 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 2351 inter
>> > 2000
>> > listen hl7_2352
>> >     bind 10.233.20.140:2352
>> >     balance roundrobin
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 2352 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 2352 inter
>> > 2000
>> > listen hl7_2353
>> >     bind 10.233.20.140:2353
>> >     balance roundrobin
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 2353 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 2353 inter
>> > 2000
>> > listen hl7_2354
>> >     bind 10.233.20.140:2354
>> >     balance roundrobin
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 2354 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 2354 inter
>> > 2000
>> > listen hl7_2355
>> >     bind 10.233.20.140:2355
>> >     balance roundrobin
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 2355 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 2355 inter
>> > 2000
>> > listen hl7_2356
>> >     bind 10.233.20.140:2356
>> >     balance roundrobin
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 2356 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 2356 inter
>> > 2000
>> > listen hl7_2357
>> >     bind 10.233.20.140:2357
>> >     balance roundrobin
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 2357 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 2357 inter
>> > 2000
>> > listen hl7_2358
>> >     bind 10.233.20.140:2358
>> >     balance roundrobin
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 2358 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 2358 inter
>> > 2000
>> > listen hl7_2359
>> >     bind 10.233.20.140:2359
>> >     balance roundrobin
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 2359 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 2359 inter
>> > 2000
>> > listen hl7_2360
>> >     bind 10.233.20.140:2360
>> >     balance roundrobin
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 2360 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 2360 inter
>> > 2000
>> > listen hl7_2361
>> >     bind 10.233.20.140:2361
>> >     balance roundrobin
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 2361 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 2361 inter
>> > 2000
>> >
>> > listen collaborator_7070
>> >     bind 10.233.20.140:7070
>> >     balance roundrobin
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 7070 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 7070 inter
>> > 2000
>> > listen collaborator_5222
>> >     bind 10.233.20.140:5222
>> >     balance roundrobin
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 7070 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 7070 inter
>> > 2000
>> > listen collaborator_5223
>> >     bind 10.233.20.140:5223
>> >     balance roundrobin
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 7070 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 7070 inter
>> > 2000
>> > listen collaborator_7443
>> >     bind 10.233.20.140:7443
>> >     balance roundrobin
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 7070 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 7070 inter
>> > 2000
>> >
>> > frontend binary
>> >     bind
>> >
>> > 10.233.20.140:4447,10.233.20.140:7900,10.233.20.140:9080,10.233.20.140:2762
>> >     default_backend binary
>> >
>> > frontend https
>> >     bind 10.233.20.140:443,10.233.20.140:8443
>> >     default_backend https
>> >
>> > frontend http
>> >     bind 10.233.20.140:80,10.233.20.140:8080
>> >     default_backend http
>> >
>> > backend binary
>> >     balance roundrobin
>> >     option httpchk GET /status
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 80 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 80 inter
>> > 2000
>> >
>> > backend https
>> >     balance roundrobin
>> >     option httpchk GET /status
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 80 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 80 inter
>> > 2000
>> >
>> > backend http
>> >     mode http
>> >     balance roundrobin
>> >     option httpchk GET /status
>> >     appsession JSESSIONID len 52 timeout 3h
>> >     server 10.233.20.130 10.233.20.130 maxconn 32 check port 80 inter
>> > 2000
>> >     server 10.233.23.123 10.233.23.123 maxconn 32 check port 80 inter
>> > 2000
>> >
>> >
>> >
>> > On Tue, Oct 1, 2013 at 2:23 PM, Baptiste <[email protected]> wrote:
>> >>
>> >> Hi tom,
>> >>
>> >> Can you share us your configuration?
>> >> HAProxy seems to be queueing the connection (maxconn set to 1??) and
>> >> the timeout queue (setup to 5s in your case??) has expired so the
>> >> connection is not forwarded to the server.
>> >>
>> >> Of course, I want you to send us some comments with your
>> >> configuration, we need to understand why you did configure your
>> >> settings :)
>> >>
>> >> Baptiste
>> >>
>> >>
>> >>
>> >> On Tue, Oct 1, 2013 at 2:18 PM, Tom Huybrechts
>> >> <[email protected]>
>> >> wrote:
>> >> > Hi all,
>> >> >
>> >> > I'm using haproxy 1.4.23 on Windows Server 2008 to proxy tcp
>> >> > connections
>> >> > to
>> >> > a single backend server. Usually this is going well, but occasionally
>> >> > a
>> >> > client has issues: connections get dropped and they are unable to
>> >> > make
>> >> > new
>> >> > ones.
>> >> >
>> >> > Investigation of the logs show server-side timeouts:
>> >> >
>> >> > [01/Oct/2013:12:06:10.653] binary binary/<NOSRV> 5015/-1/5015 0 sQ
>> >> > 40/33/33/0/0 0/1
>> >> > [01/Oct/2013:12:06:10.653] binary binary/<NOSRV> 5015/-1/5015 0 sQ
>> >> > 39/32/32/0/0 0/2
>> >> > [01/Oct/2013:12:06:15.934] binary binary/<NOSRV> 5000/-1/5000 0 sQ
>> >> > 42/36/36/0/0 0/1
>> >> > [01/Oct/2013:12:06:17.231] binary binary/<NOSRV> 5062/-1/5062 0 sQ
>> >> > 42/36/36/0/0 0/2
>> >> > [01/Oct/2013:12:06:17.247] binary binary/<NOSRV> 5046/-1/5046 0 sQ
>> >> > 41/35/35/0/0 0/3
>> >> > [01/Oct/2013:12:06:19.856] binary binary/<NOSRV> 5015/-1/5015 0 sQ
>> >> > 40/34/34/0/0 0/4
>> >> > [01/Oct/2013:12:06:19.856] binary binary/<NOSRV> 5015/-1/5015 0 sQ
>> >> > 39/33/33/0/0 0/5
>> >> > [01/Oct/2013:12:06:21.012] binary binary/<NOSRV> 5031/-1/5031 0 sQ
>> >> > 38/32/32/0/0 0/5
>> >> >
>> >> > I have no idea why: the server is not under heavy load.
>> >> >
>> >> > I have a wireshark dump of one such occasion. I expected to at least
>> >> > see
>> >> > SYN
>> >> > packets going from haproxy to server in this timeframe, but there
>> >> > where
>> >> > none. In the meanwhile other connections from haproxy to the same
>> >> > server
>> >> > continued without problems.
>> >> >
>> >> > Any hints to what's wrong, or what I can do to investigate further?
>> >> >
>> >> > Tom
>> >> >
>> >
>> >
>
>

Reply via email to