CentOS with BBR: Optimizing Network Performance on Linux Systems

Introduction
The BBR (Bottleneck Bandwidth and RTT) algorithm is a congestion control mechanism developed by Google to improve the performance of TCP connections. It dynamically adjusts the sending rate based on the available bandwidth and the round-trip time (RTT) of the network. CentOS, being a popular Linux distribution, can be enhanced with BBR to provide faster and more efficient network performance. In this article, we will guide you through the process of enabling BBR on CentOS systems.
Prerequisites
Before we proceed, ensure that your CentOS system meets the following prerequisites:
- CentOS 7 or CentOS 8
- Kernel version 4.9 or higher
- Root access or sudo privileges
Step 1: Update Your System
To ensure that your system is up-to-date, run the following commands:
sudo yum update -y
Step 2: Install Net-tools
Net-tools is a collection of network troubleshooting utilities. Install it using the following command:
sudo yum install net-tools -y
Step 3: Check Kernel Version
Verify that your kernel version is 4.9 or higher. Use the following command to check your kernel version:
uname -r
If your kernel version is lower than 4.9, you will need to upgrade your kernel. However, upgrading the kernel is beyond the scope of this article.
Step 4: Enable BBR
To enable BBR on your CentOS system, follow these steps:
Load the BBR module:

sudo modprobe tcp_bbr
Check if BBR is loaded:
lsmod | grep bbr
If the output shows tcp_bbr, BBR is successfully loaded.
Configure sysctl to enable BBR:
echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf
Apply the sysctl settings:
sudo sysctl -p
Step 5: Verify BBR Configuration
To verify that BBR is enabled, run the following command:
cat /proc/sys/net/ipv4/tcp_congestion_control
The output should display bbr.
Step 6: Monitor BBR Performance
To monitor the performance of BBR, you can use the ss command to check the congestion control algorithm in use for a specific connection:
ss -o state=ESTAB
The output should show congestion=bbra or congestion=bbro for BBR in receive or transmit mode, respectively.

Troubleshooting
If you encounter any issues while enabling BBR, consider the following troubleshooting steps:
- Ensure that your kernel supports BBR.
- Verify that the BBR module is loaded correctly.
- Check for any conflicting sysctl settings.
- Restart the network services or reboot the system.
FAQs
Q1: Why is BBR not working on my CentOS system?
A1: There are several reasons why BBR might not be working on your CentOS system. Ensure that your kernel supports BBR, the BBR module is loaded, and there are no conflicting sysctl settings. Additionally, verify that your CentOS version is 7 or 8.
Q2: Can I use BBR with other congestion control algorithms?
A2: Yes, you can use BBR alongside other congestion control algorithms. However, it is recommended to use BBR as it is designed to optimize network performance. If you need to switch between different algorithms, you can modify the net.ipv4.tcp_congestion_control setting accordingly.

