1
0
mirror of http://git.haproxy.org/git/haproxy.git/ synced 2025-03-06 19:38:22 +00:00
haproxy public development tree
Go to file
Willy Tarreau 8ae8c48eb0 MEDIUM: fwlc: re-enable per-server queuing up to maxqueue
Leastconn has the nice propery of being able to sort servers by their
current usage. It's really a shame to force all requests into the backend
queue when the algo would be able to also consider their current queue.

In order not to change existing behavior but extend it, this patch allows
leastconn to elect servers which are already full if they have an explicitly
configured maxqueue setting above zero and their queue hasn't reached that
threshold. This will significantly reduce the pressure in the backend queue
when queuing a lot with lots of servers.

A test on 8 threads with 100 servers configured with maxconn 1 jumped
from 165krps to 330krps with maxqueue 15 with this patch.

This partially undoes commit 82cd5c13a ("OPTIM: backend: skip LB when we
know the backend is full") but allows to scale much better even by setting
a single-digit maxqueue value. Some better heuristics could be used to
maintain the behavior of the bypass in the patch above, consisting in
keeping it if it's known that there is no server with a configured
maxqueue in the farm (or in the backend).
2020-10-22 18:30:25 +02:00
.github DOC: overhauling github issue templates 2020-08-17 20:29:27 +02:00
contrib CONTRIB: tcploop: remove unused local variables in tcp_pause() 2020-10-22 05:17:08 +02:00
doc MEDIUM: fwlc: re-enable per-server queuing up to maxqueue 2020-10-22 18:30:25 +02:00
examples
include OPTIM: queue: don't call pendconn_unlink() when the pendconn is not queued 2020-10-22 17:32:28 +02:00
reg-tests REGTEST: cache: Add if-none-match test case 2020-10-22 16:10:20 +02:00
scripts CI: travis-ci: replace not defined SSL_LIB, SSL_INC for BotringSSL builds 2020-10-11 21:12:33 +02:00
src MEDIUM: fwlc: re-enable per-server queuing up to maxqueue 2020-10-22 18:30:25 +02:00
tests MEDIUM: config: remove the deprecated and dangerous global "debug" directive 2020-10-09 19:18:45 +02:00
.cirrus.yml
.gitattributes MINOR: Commit .gitattributes 2020-09-05 16:21:59 +02:00
.gitignore CLEANUP: Update .gitignore 2020-09-12 13:11:24 +02:00
.travis.yml CI: travis-ci: help Coverity to detect BUG_ON() as a real stop 2020-10-09 09:55:53 +02:00
BRANCHES
CHANGELOG [RELEASE] Released version 2.3-dev7 2020-10-17 10:31:50 +02:00
CONTRIBUTING
INSTALL BUILD: makefile: Update feature flags for NetBSD 2020-10-09 09:53:56 +02:00
LICENSE
MAINTAINERS
Makefile BUILD: makefile: add entries to build common debugging tools 2020-10-22 05:17:08 +02:00
README
ROADMAP
SUBVERS
VERDATE [RELEASE] Released version 2.3-dev7 2020-10-17 10:31:50 +02:00
VERSION [RELEASE] Released version 2.3-dev7 2020-10-17 10:31:50 +02:00

The HAProxy documentation has been split into a number of different files for
ease of use.

Please refer to the following files depending on what you're looking for :

  - INSTALL for instructions on how to build and install HAProxy
  - BRANCHES to understand the project's life cycle and what version to use
  - LICENSE for the project's license
  - CONTRIBUTING for the process to follow to submit contributions

The more detailed documentation is located into the doc/ directory :

  - doc/intro.txt for a quick introduction on HAProxy
  - doc/configuration.txt for the configuration's reference manual
  - doc/lua.txt for the Lua's reference manual
  - doc/SPOE.txt for how to use the SPOE engine
  - doc/network-namespaces.txt for how to use network namespaces under Linux
  - doc/management.txt for the management guide
  - doc/regression-testing.txt for how to use the regression testing suite
  - doc/peers.txt for the peers protocol reference
  - doc/coding-style.txt for how to adopt HAProxy's coding style
  - doc/internals for developer-specific documentation (not all up to date)