BBR (Bottleneck Bandwidth and Round-trip propagation time) is a networking algorithm that responds to actual congestion rather than waiting for packet loss to occur like traditional networking from the olden days (that's the 1980's for you young'uns).
This idea is not new and has been around for a least a decade but with Google's successful implementation at YouTube (at least since July 20, 2017) the stable benefits are hard to ignore (italic emphasis below is ours):
BBR yielded 4 percent higher network throughput, because it more effectively discovers and utilizes the bandwidth offered by the network. BBR also keeps network queues shorter, reducing round-trip time by 33 percent; this means faster responses and lower delays for latency-sensitive applications like web browsing, chat and gaming. Moreover, by not overreacting to packet loss, BBR provides 11 percent higher mean-time-between-rebuffers. These represent substantial improvements for all large user populations around the world, across both desktop and mobile users. https://cloudplatform.googleblog.com/2017/07/TCP-BBR-congestion-control-comes-to-GCP-your-Internet-just-got-faster.html
We typically avoid Google things aside from the Android operating system (quickly replaced by LineageOS or UBPorts).
In our experience Alphabet's flighty and impulsive treatment of its own projects tend to be long-winded alpha-level vaporware. They (Google) test grandiose software en masse sandwiched between thick slices of marketing hype only to abruptly EOL infrastructure (generally without providing an open source forkable release). Fortunately BBR is open sourced here and licensed under the Apache License 2.0.
Before you jump into the terminal shell you'll want to prep a before vs. after test so you can see just how faster your own server is after the BBR installation. The authors over at Cybercitiz.biz has an easy way that does not involve tracking network speeds with specially installed network monitoring tools.
Before you install BBR, upload an iso file to your server's public directory and download it using a url in a browser (or the wget command in the shell). Take note of the time it takes to download the file and how fast your server is able to deliver the data (either in MB's or KB's per second).
Then proceed below with the instructions*:
First, check your current linux kernel (you need 4.9+):
uname -r
Example response: 4.4.0-103-generic
Update your repositories and upgrade your kernel:
sudo apt update
sudo apt install --install-recommends linux-generic-hwe-16.04
Edit the of the following file:
sudo nano /etc/sysctl.conf
Add these three lines at the bottom of sysctl.conf:
# ENABLE TCP BBR CONGESTION CONTROL
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
Ctrl + O, enter to save nano changes
Ctrl + X, enter to exit nano editor
Reboot your server to apply the sysctl.confi file changes:
sudo reboot
Check the changes:
sysctl net.core.default_qdisc
Response: net.core.default_qdisc = fq
sysctl net.ipv4.tcp_congestion_control
Response: net.ipv4.tcp_congestion_control = bbr
Now that you have installed and confirmed BBR, its time to rerun your wget and/or browser iso download test. Simply re-visit the same iso file you did before taking note of the time and how fast your server sends the data (either in MB's or KB's per second).
You can easily compare the two notations and with simple division determine what percentage your server networking speed increased due to the BBR's congestion rerouting.
*These instructions were created using information from both LinuxBabe.com and Cyberciti.biz on two seperate live Ubuntu 16.04 LTS servers running multiple websites. It was only through a combination of the two instructions we were able to successfully install and test the performance gains of BBR.
It takes a hood all that and a bag of Fritos to raise a G'server. Holla these digits at (559) 242-6647, send us an email, txt us or imnsho in the comments section below to get your dwerk on!
Comments powered by CComment