mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-03-31 23:58:16 +00:00
haproxy public development tree
Now when we fail to send because the mux buffer is full, before giving up and marking MFULL, we try to allocate another buffer in the mux's ring to try again. Thanks to this (and provided there are enough buffers allocated to the mux's ring), a single stream picked in the send_list cannot steal all the mux's room at once. For this, we expand the ring size to 31 buffers as it seems to be optimal on benchmarks since it divides the number of context switches by 3. It will inflate each H2 conn's memory by 1 kB. The bandwidth is now much more stable. Prior to this, it a test on h2->h1 with very large objects (1 GB), a few tens of connections and a few tens of streams per connection would show a varying performance between 34 and 95 Gbps on 2 cores/4 threads, with h2_snd_buf() stopped on a buffer full condition between 300000 and 600000 times per second. Now the performance is constantly between 88 and 96 Gbps. Measures show that buffer full conditions are met around only 159 times per second in this case, or rougly 2000 to 4000 times less often. |
||
---|---|---|
.github/ISSUE_TEMPLATE | ||
contrib | ||
doc | ||
ebtree | ||
examples | ||
include | ||
reg-tests | ||
scripts | ||
src | ||
tests | ||
.cirrus.yml | ||
.gitignore | ||
.travis.yml | ||
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)