This is an old revision of the document!
Linux Kernel-Tuning
BBR Congestion Control Algorithm
BBR is included since Linux 4.10. It won't show in net.ipv4.tcp_allowed_congestion_control or net.ipv4.tcp_available_congestion_control if the module tcp_bbr isn't loaded. This module is loaded automatically if activate bbr.
Check the current algorithm.
# sysctl net.ipv4.tcp_congestion_control net.ipv4.tcp_congestion_control = bbr
Switch to bbr.
sysctl -w net.ipv4.tcp_congestion_control=bbr
Permanently activate bbr.
echo "net.ipv4.tcp_congestion_control = bbr" > /etc/sysctl.d/90-bbr.conf
Additional Information
You will find a lot of instructions which set “net.core.default_qdisc” to “fq”. The reason is, the first implementation was specifically designed for fq and you can still find references in the source code:
NOTE: BBR might be used with the fq qdisc (“man tc-fq”) with pacing enabled, otherwise TCP stack falls back to an internal pacing using one high resolution timer per TCP socket and may use more resources.
According to the official documentation, BBR doesn't require fq anymore. It also works with fq_codel for example.
This means that there is no longer a strict requirement to install the “fq” qdisc to use BBR. Any qdisc will work, though “fq” performs better for highly-loaded servers.
– TCP BBR Quick-Start: Building and Running TCP BBR on Google Compute Engine
Links