@@ -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