User Tools

Site Tools


linux:bbr

BBR

BBR is the optimization for the tcp, and it can increase the network speed significant. So it's the same as kcptun.

BBR on Raspberry Pi

Check the kernel version, the kernel is already 4.9+, so it already support bbr

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.9.35-v7+ #1014 SMP Fri Jun 30 14:47:43 BST 2017 armv7l GNU/Linux

Enable bbr

sysctl net.core.default_qdisc=fq
sysctl net.ipv4.tcp_congestion_control=bbr

pi@raspberrypi:~ $  sudo sysctl net.ipv4.tcp_congestion_control=bbr
net.ipv4.tcp_congestion_control = bbr
pi@raspberrypi:~ $  lsmod |grep bbr
tcp_bbr                 6366  18
pi@raspberrypi:~ $  sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = bbr cubic reno
pi@raspberrypi:~ $  sysctl net.ipv4.tcp_congestion_control
net.ipv4.tcp_congestion_control = bbr

DigitalOcean enable BBR

Refer

Install the grub loader in the console panel, first you need power off, then after install the grub loader, then power on.

Install the new kernel, you can find the kernel what you want

apt-cache search --names-only linux-image
 sudo apt-get install linux-image-4.11.0-13-generic linux-headers-4.11.0-13-generic

Or

sudo apt-get install linux-image-4.10.0-42-generic linux-headers-4.10.0-42-generic

Actuall after install the above kernel, it doesn't support BBR, and the working kernel is following one, you need manual download and install it

cd kernel4.9/
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9/linux-image-4.9.0-040900-generic_4.9.0-040900.201612111631_amd64.deb
sudo dpkg -i linux-image-4.9.0-040900-generic_4.9.0-040900.201612111631_amd64.deb

Update the grub

sudo vim /etc/default/grub

Add the line:

GRUB_DISABLE_SUBMENU = Y

export GRUB_CONFIG=`sudo find /boot -name "grub.cfg"`
sudo update-grub

Now you find all the kernel

grep 'menuentry ' $GRUB_CONFIG | cut -f 2 -d "'" | nl -v 0

And you need update /etc/default/grub, and set update the index to the one your want

GRUB_DEFAULT=0

Now you can reoot the VPS

Some tips

uname -r
#查看内核版本,含有4.9.0就表示OK了
#------------
sysctl net.ipv4.tcp_available_congestion_control
#返回值一般为:
#net.ipv4.tcp_available_congestion_control = bbr cubic reno
#------------
sysctl net.ipv4.tcp_congestion_control
#返回值一般为:
#net.ipv4.tcp_congestion_control = bbr
#------------
sysctl net.core.default_qdisc
#返回值一般为:
#net.core.default_qdisc = fq
#------------
lsmod | grep bbr
#返回值有tcp_bbr模块即说明bbr已启动。

Refer

/var/www/dokuwiki/wiki/data/pages/linux/bbr.txt · Last modified: 2018/01/08 14:40 by percy