mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-06 07:07:04 +02:00
DOC: config: refine a little bit the text on QUIC pacing
The QUIC pacing options changed a few times during their development. For example the unit is now in datagrams not bytes. Also a few sentences were slightly ambiguous so let's reword this. No backport is needed.
This commit is contained in:
parent
dee3f4b3ff
commit
7fb98e833c
@ -17213,26 +17213,33 @@ quic-cc-algo { cubic | newreno | bbr | nocc }[(<args,...>)]
|
||||
|
||||
Default value: cubic
|
||||
|
||||
It is possible to active pacing if the algorithm is compatible. This is done
|
||||
by specifying optional burst argument as described in the next paragraph.
|
||||
Pacing purpose is to smooth emission of data without burst to reduce network
|
||||
loss. In some scenario, it can significantly improve network throughput.
|
||||
However, it can also increase CPU usage if haproxy is forced to wait too long
|
||||
between each emission. Pacing support is still experimental, as such it
|
||||
requires "expose-experimental-directives". BBR congestion control algorithm
|
||||
depends on the pacing support which is in this case implicitely activated by
|
||||
"bbr". Note that BBR haproxy implementation is still considered as
|
||||
experimental and cannot be enabled without "expose-experimental-directives".
|
||||
It is possible to enable pacing if the algorithm is compatible. This is done
|
||||
by specifying an optional burst argument as described in the next paragraph.
|
||||
The purpose of pacing is to smooth emission of data to reduce network losses.
|
||||
In some scenario, it can significantly improve network throughput by avoiding
|
||||
retransmissions. However, it can also increase CPU usage if haproxy is forced
|
||||
to wait too long between each emission. Pacing support is still experimental,
|
||||
as such it requires "expose-experimental-directives". The BBR congestion
|
||||
control algorithm depends on the pacing support which is in this case
|
||||
implicitly enabled by choosing the "bbr" algorithm. Note that haproxy's BBR
|
||||
implementation is still considered as experimental and cannot be enabled
|
||||
without "expose-experimental-directives".
|
||||
|
||||
For further customization, a list of parameters can be specified after the
|
||||
algorithm token. It must be written between parenthesis, separated by a comma
|
||||
operator. Each argument is optional and can be empty if needed. Here is the
|
||||
algorithm token. It must be written between parenthesis, separated by a
|
||||
comma. Each argument is optional and can be empty if needed. Here is the
|
||||
mandatory order of each parameters :
|
||||
- maximum window size in bytes. It must be greater than 10k and smaller than
|
||||
4g. By default "tune.quic.frontend.default-max-window-size" value is used.
|
||||
- burst size in bytes. By default, it is set to 0, which means unlimited. A
|
||||
positive value up to 1024 can be specified to smooth emission with pacing.
|
||||
See above paragraph for more explanation.
|
||||
- burst size in datagrams. By default, it is set to 0, which means unlimited.
|
||||
A positive value up to 1024 can be specified to smooth emission using
|
||||
pacing. Lower values provide a smoother traffic (hence less losses) at the
|
||||
expense of a higher CPU usage, while higher values will reduce CPU usage
|
||||
and provide a slightly more bursty traffic. Note that a datagram is usually
|
||||
around 1252 bytes, and that a typical receive buffer is 208kB or 170
|
||||
datagrams, so in order to keep the traffic smooth, bursts should only
|
||||
represent a small fraction of this value (between a few units to a few tens
|
||||
at most). See above paragraph for more explanation.
|
||||
|
||||
Example:
|
||||
# newreno congestion control algorithm
|
||||
|
Loading…
Reference in New Issue
Block a user