diff --git a/doc/haload.txt b/doc/haload.txt new file mode 100644 index 000000000..fa240868d --- /dev/null +++ b/doc/haload.txt @@ -0,0 +1,132 @@ +------ + HALoad + ------ + HAProxy's dummy HTTP + client for benchmarks + +1. Background +------------- + +HALoad is a lightweight, multi-threaded traffic generator designed to benchmark +HTTP infrastructures under heavy loads. Built directly onto HAProxy's highly +scalable core architecture, it shares its parent engine's efficient handling of +connections. This framework allows the tool to generate high-volume traffic +across all standard application layers, including HTTP/1, HTTP/2, and HTTP/3 +(QUIC), over either cleartext or secured TLS connections. + +The primary design goal is to provide a modernized alternative to legacy tools +like h1load, extending benchmarking capabilities to newer protocols. Notably, +HALoad introduces the concept of users (-u), a feature completely absent +from h1load. Here, a "user" strictly represents an independent, concurrent +HTTP client task. Under this architecture, each simulated client will +instantiate as many backend server connections as there are target URLs +specified on the command line. + +HALoad does not require any configuration file. Instead, the configuration is +dynamically derived from basic command line inputs. This ensures immediate +usability for test operators while retaining the ability to test complex, +multi-protocol setups. + + +2. Compilation +-------------- + +The compilation process mirrors standard HAProxy builds, specifying "haload" +as the compilation target via the command line: + + $ make -j $(nproc) TARGET=linux-glibc haload + +To enable encrypted communication layers (TLS/SSL): + + $ make TARGET=linux-glibc USE_OPENSSL=1 haload + +For advanced HTTP/3 over QUIC load testing: + + $ make -j $(nproc) TARGET=linux-glibc USE_OPENSSL=1 USE_QUIC=1 haload + +Because HALoad shares the code of the main HAProxy binary, it natively +inherits all standard HAProxy compiler flags, optimizations, and build +targets. + + +3. Execution +------------ + +HALoad displays its usage when run without argument or wrong arguments: + + Usage : haload [opts] [URL] + where may be any combination of: + -d