【Linux】 为服务器开启BBR拥塞控制算法


众所周知TCP在丢包率高的时候,带宽急剧下降,谷歌在Linux内核中增加了BBR算法,通过修改TCP 拥塞控制算法模块即可大幅增加可用带宽,好神奇啊……BBR是来自于Google的黑科技,目的是通过优化和控制TCP的拥塞,充分利用带宽并降低延迟,起到神奇般的加速效果。 在BBR之前,比较有名的就是国产的锐速了,不过,由于锐速是个国产的闭源软件,所以一直纠结不想装在VPS上。正好,BBR的出现,又成为一个可供折腾的对象。BBR 这个特性其实是在 Linux 内核 4.9 才计划加入的。所以,要开启BBR,需要内核版本在Linux kernel 4.9以上。下面纪录一下如何升级Linux内核,并且开启BBR:

Debian 8 / Ubuntu 14 / Ubuntu 16 / Ubuntu 18

提示:如果安装最新的Ubuntu 17 及以上版本,有可能内核已经为4.10了,可以不用再升级内核了 - 安装内核

wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.11.4/linux-image-4.11.4-041104-generic_4.11.4-041104.201706071003_amd64.deb
  • 清理旧内核
apt-get remove
  • 更新 grub 系统引导文件并重启
update-grub
reboot

开启BBR

开机后执行uname -r 确认内核版本是否为4.9以上版本。 执行lsmod | grep bbr,如果执行结果中没有 tcp_bbr的话就先执行

modprobe tcp_bbr # 加载tcp_bbr模块
echo "tcp_bbr" >> /etc/modules-load.d/modules.conf # 开机就加载该模块

执行

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

或者编辑文件 /etc/sysctl.conf 添加

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

执行 sysctl -p,使其立即生效 执行

sysctl net.ipv4.tcp_available_congestion_control

sysctl net.ipv4.tcp_congestion_control

如果结果都有bbr, 则证明你的内核已开启 bbr。看到有 tcp_bbr 模块即说明bbr已启动,这样,就可以开始体验Google的黑科技加速了……