Increasing throughput on Linux!

Hello everyone! As a MSP we always strive to offer customers/users with the best and most reliable service/s by being able to increase your overall traffic throughput your customers/users are able to deliver content faster decreasing overall load on your server.

follow the steps to enable BBR (Bottleneck Bandwidth and Round-trip propagation time) congestion control algorithm in Linux, here’s how you can do it:

  1. Check BBR Availability: First, confirm if your Linux kernel supports BBR. BBR is available in Linux kernel versions 4.9 and above. You can check your kernel version by running the following command in the terminal:

uname -r

If your kernel version is 4.9 or above, you can proceed with enabling BBR. Otherwise, you might need to update your kernel.

  1. Enable BBR: To enable BBR, you need to modify the TCP congestion control algorithm.

Open the terminal on your Linux system Run the following command to edit the sysctl configuration file:

sudo nano /etc/sysctl.conf

Add the following lines at the end of the file:

net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
  1. Apply the Changes: To apply the changes made in the sysctl.conf file, run the following command:
sudo sysctl -p

This will reload the sysctl settings and enable BBR as the default TCP congestion control algorithm.

BBR should now be enabled on your Linux system. You can verify its activation by running the following command:

sysctl net.ipv4.tcp_congestion_control

If the output includes “bbr,” it means BBR is enabled.

Please note that enabling BBR requires administrative privileges (sudo access). Also, keep in mind that modifying system configurations can have consequences, so proceed with caution and make sure you understand the changes you are making.

Credits to Michael:

bbr requires Linux kernel version 4.9 or above, use uname -r to check your Linux kernel version:

Example output:

$ uname -a
Linux pi3 4.19.97-v7+ 

To enable BBR, you might need enable kernel module tcp_bbr:

# modprobe tcp_bbr
# echo "tcp_bbr" > /etc/modules-load.d/bbr.conf

After modprobe tcp_bbr, bbr should be available in the list of tcp_available_congestion_control:

$ sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = reno cubic bbr
5 Likes

Thank you so much for sharing this, @nexuspipe. If you don’t mind, I’d love to move it to Dev Tips.

1 Like

Hello @Jessica_CM ,

I do not mind, Thank you

~ Andy

Done! I’ve moved it. Thank you. :slight_smile:

Thank you for sharing!

1 Like

I’d like to highlight that you might need to enable the related kernel module first.

$ sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = reno cubic
$ modprobe tcp_bbr
$ sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = reno cubic bbr

Source with more good to know details: Huge improve network performance by change TCP congestion control to BBR

2 Likes

Hello Michael,

This is true,

I will add it to this post.

EDIT:

I do not have permissions to edit my post.

~ Andy

@Michael_Bergmann Thanks for pointing that out.

@nexuspipe For security reasons, there are currently limits for how long after a post has been created, users can edit their own posts. Unfortunately, your post falls outside that time frame. I’d be happy to edit your post for you, if you let me know where you’d like to add the information and what wording you’d like me to use. Let me send you a DM.

I’ve updated the post.