-
Linux kernel version must be greater than 4.19
to check kernel version, run
uname -r
. sample output:5.4.0-132-generic
-
Have the
CONFIG_TCP_CONG_BBR
andCONFIG_NET_SCH_FQ
options compiled and added to the kernel.to check, run
sudo cat /boot/config-$(uname -r) | grep 'CONFIG_TCP_CONG_BBR'
. sample output:CONFIG_TCP_CONG_BBR=m
to check other options, run
sudo cat /boot/config-$(uname -r) | grep 'CONFIG_NET_SCH_FQ'
.sample output:CONFIG_NET_SCH_FQ_CODEL=m CONFIG_NET_SCH_FQ=m CONFIG_NET_SCH_FQ_PIE=m
First, check if BBR is enabled on the system. To do this, run:
sysctl net.ipv4.tcp_available_congestion_control
And you will get an output screen like this:
net.ipv4.tcp_available_congestion_control = reno cubic
Another check can be done with this command:
sysctl net.ipv4.tcp_congestion_control
Sample Output:
net.ipv4.tcp_congestion_control = cubic
And to enable BBR, edit the /etc/sysctl.conf
file:
sudo nano /etc/sysctl.conf
At the end of the file, add the following lines:
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
Save the file, and refresh your configuration by using this command:
sudo sysctl -p
Now restart the server to apply the changes.
sysctl net.ipv4.tcp_congestion_control
output:
net.ipv4.tcp_congestion_control = bbr