====== BBR ======
BBR is the optimization for the tcp, and it can increase the network speed significant. So it's the same as [[linux:kcptun|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
- https://www.digitalocean.com/community/tutorials/how-to-update-a-digitalocean-server-s-kernel
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 ====
- https://www.nmbhost.com/archives/1594
- https://blog.chenjia.me/articles/161229-000832.html
- https://www.digitalocean.com/community/tutorials/how-to-update-a-digitalocean-server-s-kernel