最新消息:

Google BBR 优化算法,实现TCP加速,一键安装BBR,bbr加速一键脚本

Linux 梧桐 51464浏览 5评论

bbr加速一键脚本

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

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

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

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

更新动态

2017年5月15日,秋水逸冰做的一键安装脚本

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

关于本脚本

1、本脚本已在 Vultr 上的 VPS 全部测试通过。
2、当脚本检测到 VPS 的虚拟方式为 OpenVZ 时,会提示错误,并自动退出安装。
3、某些服务商(如 DigitalOcean)可能需要首先将 VPS 配置为可自定义内核,然后 grub2 的配置才会生效。
4、脚本运行完重启发现开不了机的,打开 VPS 后台控制面板的 VNC, 开机卡在 grub 引导, 手动选择内核即可。
5、由于是使用最新版系统内核,最好请勿在生产环境安装,以免产生不可预测之后果。

使用方法

使用root用户登录,运行以下命令:

wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh
chmod +x bbr.sh
./bbr.sh

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

uname -r

查看内核版本,含有 4.10 就表示 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已启动。

内核升级方法

如果是 CentOS 系统,执行如下命令即可升级内核:

yum --enablerepo=elrepo-kernel -y install kernel-ml kernel-ml-devel

CentOS 6 的话,执行命令:

sed -i 's/^default=.*/default=0/g' /boot/grub/grub.conf

CentOS 7 的话,执行命令:

grub2-set-default 0

如果是 Debian/Ubuntu 系统,则需要手动下载最新版内核来安装升级。
这里下载最新版的内核 deb 安装包。
如果系统是 64 位,则下载 amd64 的 linux-image 中含有 generic 这个 deb 包;
如果系统是 32 位,则下载 i386 的 linux-image 中含有 generic 这个 deb 包;
安装的命令如下(以最新版的 64 位 4.9.3 举例而已,请替换为下载好的 deb 包):

dpkg -i linux-image-4.9.3-040903-generic_4.9.3-040903.201701120631_amd64.deb

安装完成后,再执行命令:

/usr/sbin/update-grub

 

2016年12月13日11:33:18

新增CentOS7 RMP 安装BBR步骤说明

新增CentOS6一键安装脚本

更新CentOS6 RMP包地址。

开源地址

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

二、CentOS7

评论有人已经成功。

1)RMP安装(推荐)

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

YUM 更新

yum update -y

查看内核版本

cat /etc/redhat-release
#CentOS Linux release 7.3.1611 (Core)

安装

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 -y

查看内核是否安装成功

rpm -qa | grep kernel

更新 grub 系统引导文件并重启

egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
grub2-set-default 0  #default 0表示第一个内核设置为默认运行, 选择最新内核就对了
reboot

开机后 uname -r 看看是不是内核4.9

开启bbr

vim /etc/sysctl.conf

加两行:

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

保存生效

sysctl -p

执行

sysctl net.ipv4.tcp_available_congestion_control

如果结果中有bbr, 则证明你的内核已开启bbr

执行

lsmod | grep bbr

看到有 tcp_bbr 模块即说明bbr已启动

 

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

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

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

1)一键安装(推荐)

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

wget --no-check-certificate https://github.com/52fancy/GooGle-BBR/raw/master/BBR.sh && sh BBR.sh

之后重启服务器即可

验证是否安装成功

lsmod | grep bbr

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

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

2)RMP安装(推荐)

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

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install -y https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-ml-4.9.0-1.el7.elrepo.x86_64.rpm

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

vi /etc/grub.conf

修改成 default=0

保存然后重启

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

编译安装(不推荐)

速度较慢。

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
执行

ps -ef| grep bbr

,看到有 tcp_bbr 模块即说明bbr已启动。

转载请注明:八度生活 » Google BBR 优化算法,实现TCP加速,一键安装BBR,bbr加速一键脚本

您必须 登录 才能发表评论!

网友最新评论 (5)

  1. centos6 Couldn't resolve host 'mirrorlist.centos.org 会提示这个错误
    doncui7年前(2016-12-16)
    • Centos 6你用一键的那个,我顺利就装好了
      是我7年前(2016-12-19)
  2. 非常好用 感谢
    maxo87年前(2017-01-06)
  3. 蟹蟹
    QAQ7年前(2017-11-19)
  4. 请问使用方法一个个键入完之后,还需要使用下面的对应系统的方法再继续执行代码一边吗?
    QAQ7年前(2017-11-19)