mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-02-11 16:08:00 +00:00
haproxy public development tree
On a 24-core machine doing lots of track-sc, it was found that the lock in stktable_get_entry() was responsible for 25% of the CPU alone. It's sad because most of its job is to protect the table during the lookup. Here we're taking a slightly different approach: the lock is first taken for reads during the lookup, and only in case of failure we switch it for a write lock. We don't even perform an upgrade here since an allocation is needed between the two, it would be wasted to do it under the lock, and is generally not a good idea, so better release the read lock and try again. Here the performance under 48 threads with 3 trackers on the same table jumped from 455k to 2.07M, or 4.55x! Note that the same approach should be possible for stktable_set_entry(). |
||
---|---|---|
.github | ||
addons | ||
admin | ||
dev | ||
doc | ||
examples | ||
include | ||
reg-tests | ||
scripts | ||
src | ||
tests | ||
.cirrus.yml | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
.travis.yml | ||
BRANCHES | ||
CHANGELOG | ||
CONTRIBUTING | ||
INSTALL | ||
LICENSE | ||
MAINTAINERS | ||
Makefile | ||
README | ||
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 - 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)