Google BBR 优化算法,实现TCP加速【转载】

这是2016年9月份才开源的一个优化网络拥堵的算法。

目前最新版本的Linux内核(4.9-rc8)中已经集成了该算法。

据很多人反馈,速度比锐速还厉害!!

毕竟是新鲜的东西,难免有BUG,酌情使用。

更新动态

2017年2月16日01:01:11

新增秋水逸冰一键安装脚本

 

2016年12月13日11:33:18

新增CentOS7 RMP 安装BBR步骤说明

新增CentOS6一键安装脚本

更新CentOS6 RMP包地址。

 

开源地址

https://github.com/google/bbr

注意这不是Google官方的产品。

 

使用必读

不支持OpenVZ虚拟!

安装前需要备份重要数据,安装完可能会导致系统无法启动!

系统无法修改请尝试修改引导!或者重装系统!

 

安装方式

Debian8/Ubuntu14

  • 下载最新内核,最新内核查看这里
  • wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9-rc8/linux-image-4.9.0-040900rc8-generic_4.9.0-040900rc8.201612051443_amd64.deb
  • 安装内核
  • dpkg -i linux-image-4.9.0*.deb
  • 删除其余内核
  • dpkg -l|grep linux-image
    
    sudo apt-get remove linux-image-[Tab补全] #删旧内核,在这里,就是把第一个3.13的删掉
  • 更新 grub 系统引导文件并重启
  • update-grub
    
    reboot
  • 开启bbr
  • echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
    
    echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

保存生效sysctl -p
执行sysctl net.ipv4.tcp_available_congestion_control
如果结果中有bbr, 则证明你的内核已开启bbr
执行lsmod | grep bbr, 看到有 tcp_bbr 模块即说明bbr已启动。

 

CentOS7

评论有人已经成功。

1)RMP安装(推荐)

先更新到7.3,安装elrepo官方4.9正式版

YUM 更新

yum update -y

查看内核版本

cat /etc/redhat-release

#CentOS Linux release 7.3.1611 (Core)

安装RPM

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

修改elrepo让yum update可用

vim /etc/yum.repos.d/elrepo.repo

把enabled=0改成enabled=1
然后保存之后yum update -y,就会更新到elrepo正式版4.9内核。

 

开启bbr

vim /etc/sysctl.conf

加两行:

net.core.default_qdisc = fq

net.ipv4.tcp_congestion_control = bbr

保存生效sysctl -p

 

2) 编译安装

wget http://mirrors.kernel.org/debian/pool/main/l/linux/linux-image-4.9.0-rc8-amd64-unsigned_4.9~rc8-1~exp1_amd64.deb

ar x linux-image-4.9.0-rc8-amd64-unsigned_4.9~rc8-1~exp1_amd64.deb

tar -Jxf data.tar.xz

 


install -m644 boot/vmlinuz-4.9.0-rc8-amd64 /boot/vmlinuz-4.9.0-rc8-amd64

 


cp -Rav lib/modules/4.9.0-rc8-amd64 /lib/modules/

depmod -a 4.9.0-rc8-amd64

#centos >= 6

dracut -f -v --hostonly -k '/lib/modules/4.9.0-rc8-amd64'  /boot/initramfs-4.9.0-rc8-amd64.img 4.9.0-rc8-amd64

 


grub2-mkconfig -o /boot/grub2/grub.cfg

然后修改系统启动引导文件:

需要修改Grub引导顺序,让新安装的内核作为默认内核。

或者执行:

然后重启

重启后,查看内核是否安装成功。

开启bbr

据人反馈:先把/etc/sysctl.conf 文件中 关于 net.ipv4.tcp_congestion_control的配置注释掉。

保存生效sysctl -p
执行sysctl net.ipv4.tcp_available_congestion_control
如果结果中有bbr, 则证明你的内核已开启bbr
执行lsmod | grep bbr, 看到有 tcp_bbr 模块即说明bbr已启动。

 

 

CentOS6

 

1)一键安装(推荐)

安装脚本(开源地址:https://github.com/52fancy/GooGle-BBR)

之后重启服务器即可

验证是否安装成功

如果结果显示bbr安装成功。

如果失败,请尝试RMP安装。

 

 

2)RMP安装

RMP 地址:https://elrepo.org/linux/kernel/

 

 

CAC CentOS6 系统可直接执行以下代码(以下代码已经失效)

 

安装完成,修改启动引导。(自己百度vi 命令用法)

修改成 default=0

 

保存然后重启

重启后,查看内核是否安装成功。

开启bbr

据人反馈:先把/etc/sysctl.conf 文件中 关于 net.ipv4.tcp_congestion_control的配置注释掉。

保存生效sysctl -p
执行sysctl net.ipv4.tcp_available_congestion_control
如果结果中有bbr, 则证明你的内核已开启bbr
执行lsmod | grep bbr, 看到有 tcp_bbr 模块即说明bbr已启动。

 

编译安装(不推荐)

速度较慢。

 

修改Grub引导顺序,让新安装的内核作为默认内核。default = 0

重启

重启后,查看内核是否安装成功。

开启bbr

据人反馈:先把/etc/sysctl.conf 文件中 关于 net.ipv4.tcp_congestion_control的配置注释掉。

保存生效sysctl -p
执行sysctl net.ipv4.tcp_available_congestion_control
如果结果中有bbr, 则证明你的内核已开启bbr
执行ps -ef| grep bbr, 看到有 tcp_bbr 模块即说明bbr已启动。

 

一键安装

本脚本为秋水逸冰的一键安装。

系统支持:CentOS 6+,Debian 7+,Ubuntu 12+
虚拟技术:OpenVZ 以外的(KVM、Xen、VMware等)
内存要求:≥128M

 

安装完成后,脚本会提示需要重启 VPS,输入 y 并回车后重启。
重启完成后,进入 VPS,验证一下是否成功安装最新内核并开启 TCP BBR,输入以下命令:

查看内核版本,含有 4.9 就表示 OK 了

返回值一般为:
net.ipv4.tcp_available_congestion_control = bbr cubic reno

返回值一般为:
net.ipv4.tcp_congestion_control = bbr

返回值一般为:
net.core.default_qdisc = fq

返回值有 tcp_bbr 模块即说明bbr已启动。

 

 

 

测试效果

使用 CloudAtCost小JJ,安装SS测试了一下。

明显没有锐速效果好。

不知道建站会怎么样。