开启TCP BBR拥塞控制算法

什么是BBR

  TCP BBR是谷歌出品的TCP拥塞控制算法。TCP-BBR的目标就是最大化利用网络上瓶颈链路的带宽,尽量跑满带宽,并且尽量不要有排队的情况。BBR可以起到单边加速TCP连接的效果。
  BBR算法,Google已经提交到Linux主线并发表在ACM queue期刊上的TCP-BBR拥塞控制算法。在新的linux内核上已经附带了BBR,升级内核即可开启。
  BBR解决了两个问题:
  1.在有一定丢包率的网络链路上充分利用带宽。非常适合高延迟,高带宽的网络链路。
   2.降低网络链路上的buffer占用率,从而降低延迟。非常适合慢速接入网络的用户。
   因此我们可以利用BBR来在服务器上做加速,来提高用SS代理是网络的链接速度。

安装BBR

  BBR是内嵌在Linux内核中的,目前Linux Kernel 4.9已加入了该算法,所以安装新版本内核开启BBR即可享用。下面将分系统介绍升级Linux内核的方法。

Debian/Ubuntu

下载内核

  首先我们下载最新的内核,最新的内科可以看这里:
  http://kernel.ubuntu.com/~kernel-ppa/mainline/

cd ~;mkdir linux49; cd linux49
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9/linux-headers-4.9.0-040900-generic_4.9.0-040900.201612****631_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9/linux-image-4.9.0-040900-generic_4.9.0-040900.201612****631_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9/linux-headers-4.9.0-040900_4.9.0-040900.201612****631_all.deb
开始安装:
dpkg -i *.deb

上面的适用于64位系统,其它可以自行下载Index of /~kernel-ppa/mainline/v4.9 对应版本。

删除其余内核
dpkg -l|grep linux-image 
apt-get remove linux-image-[Tab补全]
更新grub系统引导文件并重启
update-grub
重启系统并查看内核
reboot
uname -a

注:我没用Ubuntu系统升级过内核,以上内容都参考了http://sanwen.net/a/ojvuiqo.html

CentOS7

下载内核并安装
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install kernel-ml  kernel-ml-devel -y
查看内核是否安装成功
rpm -qa | grep kernel
更新grub系统引导文件并重启
 egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
 grub2-set-default 0
 reboot

一键安装脚本

wget -O- https://github.com/txy-cs/TCP-BBR/blob/master/install_bbr_centos.sh | bash

开启BBR

从刚安装的内核启动后,执行:

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
$ echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p

执行以下命令来测试是否开启了BBR:

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

$ lsmod | grep bbr
tcp_bbr                20480  0

如果想关闭BBR就可以执行:

sed -i '/net\.core\.default_qdisc=fq/d' /etc/sysctl.conf
sed -i '/net\.ipv4\.tcp_congestion_control=bbr/d' /etc/sysctl.conf
sysctl -p

然后重启才能生效

没有更多推荐了,返回首页