Back

Google BBR 优化网络拥堵的算法,实现 TCP 加速,达到vps网速加速效果.

Small color 2016年12月10日

1.png

文章转自Leonn

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

  • 目前最新版本的 Linux 内核(4.9-rc8)中已经集成了该算法。
  • 据很多人反馈,速度比锐速还厉害!!
  • 毕竟是新鲜的东西,难免有 BUG,酌情使用。

开源地址

https://github.com/google/bbr
注意这不是 Google 官方的产品。

安装方式

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 已启动

CentOS 7

  • 估计可用(据说有人已经成功。)

    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

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

    vi /etc/grub.conf

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

或者执行:

grub2-set-default "CentOS Linux (4.9.0-rc8-amd64) 7 (Core)"
  • 然后重启 reboot

  • 重启后,查看内核是否安装成功。uname -r

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

    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 已启动。

CentOS6

RMP 安装 (推荐)

  • RMP地址

    rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    yum install -y http://elrepo.org/people/ajb/devel/kernel-ml/el6/x86_64/RPMS/kernel-ml-4.9.0-0.rc8.el6.elrepo.x86_64.rpm

  • CAC CentOS6 系统可直接执行以下代码

    rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    yum install -y http://elrepo.org/people/ajb/devel/kernel-ml/el6/x86_64/RPMS/kernel-ml-devel-4.9.0-0.rc8.el6.elrepo.x86_64.rpm

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

    vi /etc/grub.conf

修改成 default=0
2.jpg

  • 保存然后重启 reboot

  • 重启后,查看内核是否安装成功。uname -r

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

    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 已启动。

3.jpg

编译安装(不推荐)

速度较慢。

yum install vim wget gcc gcc-c++ xz bc ncurses-devel hmaccalc zlib-devel binutils-devel elfutils-libelf-devel openssl-devel -y
cd /usr/local/src/
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/testing/linux-4.9-rc8.tar.xz
tar xvJf linux-4.9-rc8.tar.xz
cd linux-4.9-rc8
make menuconfig
uname -r
#2.6.32-573.3.1.el6.x86_64
cp /boot/config-2.6.32-573.3.1.el6.x86_64 .config
#cp: overwrite `.config'? #输入y

sudo sh -c 'yes "" | make oldconfig'
make #执行比较久,可以去看一集电视剧
make modules_install install#忽略提示could not find module vmware_balloon
  • 修改 Grub 引导顺序,让新安装的内核作为默认内核。default = 0

    vi /boot/grub/menu.lst #修改启动项

  • 保存然后重启 reboot

  • 重启后,查看内核是否安装成功。uname -r

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

    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 已启动。

测试效果

  • 参见各大论坛讨论,基本看下来与锐速差别不大

参考资料

如有乐享:Google BBR 优化算法,实现 TCP 加速

138VPS:开启谷歌 TCP BBR 拥塞控制算法 这是一个取代锐速的工具

源地址:开启 TCP BBR 拥塞控制算法


xiaokian.pngaaaaa.pngkaixin.pnghang.pnghuaji.pngtushe.pnglei.pngyanxian.pngyiwen.pngzhenbang.pngmianq.pnglen.pngbishi.pngyi.pnghh.pngpeng.pngbugaox.pngqian.pngtaikx.pngnuhuo.pnghang 2.pngtu.png
Submit

Title - Artist
0:00