Skip to content

Commit 7fb98e8

Browse files
committed
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.
1 parent dee3f4b commit 7fb98e8

File tree

1 file changed

+22
-15
lines changed

1 file changed

+22
-15
lines changed

doc/configuration.txt

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17213,26 +17213,33 @@ quic-cc-algo { cubic | newreno | bbr | nocc }[(<args,...>)]
1721317213

1721417214
Default value: cubic
1721517215

17216-
It is possible to active pacing if the algorithm is compatible. This is done
17217-
by specifying optional burst argument as described in the next paragraph.
17218-
Pacing purpose is to smooth emission of data without burst to reduce network
17219-
loss. In some scenario, it can significantly improve network throughput.
17220-
However, it can also increase CPU usage if haproxy is forced to wait too long
17221-
between each emission. Pacing support is still experimental, as such it
17222-
requires "expose-experimental-directives". BBR congestion control algorithm
17223-
depends on the pacing support which is in this case implicitely activated by
17224-
"bbr". Note that BBR haproxy implementation is still considered as
17225-
experimental and cannot be enabled without "expose-experimental-directives".
17216+
It is possible to enable pacing if the algorithm is compatible. This is done
17217+
by specifying an optional burst argument as described in the next paragraph.
17218+
The purpose of pacing is to smooth emission of data to reduce network losses.
17219+
In some scenario, it can significantly improve network throughput by avoiding
17220+
retransmissions. However, it can also increase CPU usage if haproxy is forced
17221+
to wait too long between each emission. Pacing support is still experimental,
17222+
as such it requires "expose-experimental-directives". The BBR congestion
17223+
control algorithm depends on the pacing support which is in this case
17224+
implicitly enabled by choosing the "bbr" algorithm. Note that haproxy's BBR
17225+
implementation is still considered as experimental and cannot be enabled
17226+
without "expose-experimental-directives".
1722617227

1722717228
For further customization, a list of parameters can be specified after the
17228-
algorithm token. It must be written between parenthesis, separated by a comma
17229-
operator. Each argument is optional and can be empty if needed. Here is the
17229+
algorithm token. It must be written between parenthesis, separated by a
17230+
comma. Each argument is optional and can be empty if needed. Here is the
1723017231
mandatory order of each parameters :
1723117232
- maximum window size in bytes. It must be greater than 10k and smaller than
1723217233
4g. By default "tune.quic.frontend.default-max-window-size" value is used.
17233-
- burst size in bytes. By default, it is set to 0, which means unlimited. A
17234-
positive value up to 1024 can be specified to smooth emission with pacing.
17235-
See above paragraph for more explanation.
17234+
- burst size in datagrams. By default, it is set to 0, which means unlimited.
17235+
A positive value up to 1024 can be specified to smooth emission using
17236+
pacing. Lower values provide a smoother traffic (hence less losses) at the
17237+
expense of a higher CPU usage, while higher values will reduce CPU usage
17238+
and provide a slightly more bursty traffic. Note that a datagram is usually
17239+
around 1252 bytes, and that a typical receive buffer is 208kB or 170
17240+
datagrams, so in order to keep the traffic smooth, bursts should only
17241+
represent a small fraction of this value (between a few units to a few tens
17242+
at most). See above paragraph for more explanation.
1723617243

1723717244
Example:
1723817245
# newreno congestion control algorithm

0 commit comments

Comments
 (0)