mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-04-18 13:05:38 +00:00
haproxy public development tree
The offset calculated for the nice value used to be wrong for a long time and got even worse when the improved multi-thread sheduler was implemented because it continued to rely on the run queue size, which become irrelevant given that we extract tasks in batches, so the run queue size moves following a sawtooth form. However the offsets much better reflects insertion positions in the queue, so it's worth dropping this rq_size component of the equation. Last point, due to the batches made of runqueue-depth entries at once, the higher the depth, the lower the effect of the nice setting since values are picked together in batches and placed into a list. An intuitive approach consists in multiplying the nice value with the batch size to allow tasks to participate to a different batch. And experimentation shows that this works pretty well. With a runqueue-depth of 16 and a parasitic load of 16000 requests per second on 100 streams, a default nice of 0 shows 16000 requests per second for nice 0, 22000 for nice -1024 and 10000 for nice 1024. The difference is even bigger with a runqueue depth of 5. At 200 however it's much smoother (16000-22000). |
||
---|---|---|
.github/ISSUE_TEMPLATE | ||
contrib | ||
doc | ||
ebtree | ||
examples | ||
include | ||
reg-tests | ||
scripts | ||
src | ||
tests | ||
.gitignore | ||
CHANGELOG | ||
CONTRIBUTING | ||
INSTALL | ||
LICENSE | ||
MAINTAINERS | ||
Makefile | ||
README | ||
ROADMAP | ||
SUBVERS | ||
VERDATE | ||
VERSION |
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 - 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)