Hello guys,

Have a question concerning a round robin balancing scenario where a session
cookie is used.
Additionally to the session cookie (and therefore re-use of the same
backend server) there is a maxconn setting of 6 per backend server,
allowing 6 concurrent connections.

Benchmarking tests have showed that concurrent connections 7+ are being
queued. This should not happen, HAProxy should return a http error back to
the client (much like backend down).

I thought I could tackle this with "maxqueue 1" for each backend server.
This setting works for 8+ concurrent connections; HAProxy returns a HTTP
503 error to the client. But the 7th connection is still being queued.

Is there a way to disable queuing at all for a backend?

Current config:

backend app-out
  balance roundrobin
  no option redispatch
  cookie SERVERID insert indirect nocache
  option httpchk GET /service?wsdl HTTP/1.0\r\nConnection:\ close
  server app01-18383 10.10.10.11:18383 maxconn 6 maxqueue 1 cookie 1-18383
check fall 1 rise 2
  server app01-18384 10.10.10.11:18384 maxconn 6 maxqueue 1 cookie 1-18384
check fall 1 rise 2
  server app01-18385 10.10.10.11:18385 maxconn 6 maxqueue 1 cookie 1-18385
check fall 1 rise 2
  server app01-18386 10.10.10.11:18386 maxconn 6 maxqueue 1 cookie 1-18386
check fall 1 rise 2
  server app01-18387 10.10.10.11:18387 maxconn 6 maxqueue 1 cookie 1-18387
check fall 1 rise 2
  server app01-18388 10.10.10.11:18388 maxconn 6 maxqueue 1 cookie 1-18388
check fall 1 rise 2
  server app01-18389 10.10.10.11:18389 maxconn 6 maxqueue 1 cookie 1-18389
check fall 1 rise 2
  server app01-18390 10.10.10.11:18390 maxconn 6 maxqueue 1 cookie 1-18390
check fall 1 rise 2
  server app02-18383 10.10.10.12:18383 maxconn 6 maxqueue 1 cookie 2-18383
check fall 1 rise 2
  server app02-18384 10.10.10.12:18384 maxconn 6 maxqueue 1 cookie 2-18384
check fall 1 rise 2
  server app02-18385 10.10.10.12:18385 maxconn 6 maxqueue 1 cookie 2-18385
check fall 1 rise 2
  server app02-18386 10.10.10.12:18386 maxconn 6 maxqueue 1 cookie 2-18386
check fall 1 rise 2
  server app02-18387 10.10.10.12:18387 maxconn 6 maxqueue 1 cookie 2-18387
check fall 1 rise 2
  server app02-18388 10.10.10.12:18388 maxconn 6 maxqueue 1 cookie 2-18388
check fall 1 rise 2
  server app02-18389 10.10.10.12:18389 maxconn 6 maxqueue 1 cookie 2-18389
check fall 1 rise 2
  server app02-18390 10.10.10.12:18390 maxconn 6 maxqueue 1 cookie 2-18390
check fall 1 rise 2

Thanks,
ck

PS: Yes, "no option redispatch" has been set on this backend. Purposely to
not redispatch to another backend server if an existing session (cookie) is
detected. For this specific application setup it's better to get a HTTP
error than to break the session.

Reply via email to