这是2016年9月份才开源的一个优化网络拥堵的算法。
目前最新版本的Linux内核(4.9-rc8)中已经集成了该算法。
根据目前使用的情况反馈来看,能大幅度提升网速。
开源地址
https://github.com/google/bbr
安装方式
一、Debian8/Ubuntu14
下载最新内核,最新内核查看这里
1
|
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
|
安装内核
1
|
dpkg -i linux-image-4.9.0*.deb
|
删除其余内核
1
2
|
dpkg -l|grep linux-image
sudo apt-get remove linux-image-[Tab补全] #删旧内核,在这里,就是把第一个3.13的删掉
|
更新 grub 系统引导文件并重启
1
2
|
update-grub
reboot
|
开启bbr
1
2
|
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
|
保存生效
1
|
sysctl -p
|
执行
1
|
sysctl net.ipv4.tcp_available_congestion_control
|
如果结果中有bbr, 则证明你的内核已开启bbr
执行
1
|
lsmod | grep bbr
|
,看到有 tcp_bbr 模块即说明bbr已启动。
二、CentOS7
评论有人已经成功。
1)RMP安装(推荐)
先更新到7.3,安装elrepo官方4.9正式版
YUM 更新
1
|
yum update -y
|
查看内核版本
1
2
|
cat /etc/redhat-release
#CentOS Linux release 7.3.1611 (Core)
|
安装
1
2
3
|
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
|
查看内核是否安装成功
1
|
rpm -qa | grep kernel
|
更新 grub 系统引导文件并重启
1
2
3
|
egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
grub2-set-default 0 #default 0表示第一个内核设置为默认运行, 选择最新内核就对了
reboot
|
开机后 uname -r
看看是不是内核4.9
开启bbr
1
|
vim /etc/sysctl.conf
|
加两行:
1
2
|
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
|
保存生效
1
|
sysctl -p
|
执行
1
|
sysctl net.ipv4.tcp_available_congestion_control
|
如果结果中有bbr, 则证明你的内核已开启bbr
执行
1
|
lsmod | grep bbr
|
看到有 tcp_bbr 模块即说明bbr已启动
2) 编译安装
1
2
3
4
5
6
7
8
9
10
11
12
|
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
|
然后修改系统启动引导文件:
1
|
vi /etc/grub.conf
|
需要修改Grub引导顺序,让新安装的内核作为默认内核。
或者执行:
1
|
grub2-set-default "CentOS Linux (4.9.0-rc8-amd64) 7 (Core)"
|
然后重启
1
|
reboot
|
重启后,查看内核是否安装成功。
1
|
uname -r
|
开启bbr
据人反馈:先把/etc/sysctl.conf 文件中 关于 net.ipv4.tcp_congestion_control的配置注释掉。
1
2
|
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
|
保存生效
1
|
sysctl -p
|
执行
1
|
sysctl net.ipv4.tcp_available_congestion_control
|
如果结果中有bbr, 则证明你的内核已开启bbr
执行
1
|
lsmod | grep bbr
|
, 看到有 tcp_bbr 模块即说明bbr已启动。
三、CentOS6
1)一键安装(推荐)
安装脚本(开源地址:https://github.com/52fancy/GooGle-BBR)
1
|
wget --no-check-certificate https://github.com/52fancy/GooGle-BBR/raw/master/BBR.sh && sh BBR.sh
|
之后重启服务器即可
验证是否安装成功
1
|
lsmod | grep bbr
|
如果结果显示bbr安装成功。
如果失败,请尝试RMP安装。
2)RMP安装(推荐)
RMP 地址:https://elrepo.org/linux/kernel/
1
2
|
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 命令用法)
1
|
vi /etc/grub.conf
|
修改成 default=0
保存然后重启
1
|
reboot
|
重启后,查看内核是否安装成功。
1
|
uname -r
|
开启bbr
据人反馈:先把/etc/sysctl.conf 文件中 关于 net.ipv4.tcp_congestion_control的配置注释掉。
1
2
|
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
|
保存生效
1
|
sysctl -p
|
执行
1
|
sysctl net.ipv4.tcp_available_congestion_control
|
如果结果中有bbr, 则证明你的内核已开启bbr
执行
1
|
lsmod | grep bbr
|
,看到有 tcp_bbr 模块即说明bbr已启动。
编译安装(不推荐)
速度较慢。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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 #修改启动项
|
重启
1
|
reboot
|
重启后,查看内核是否安装成功。
1
|
uname -r
|
开启bbr
据人反馈:先把/etc/sysctl.conf 文件中 关于 net.ipv4.tcp_congestion_control的配置注释掉。
1
2
|
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
|
保存生效
1
|
sysctl -p
|
执行
1
|
sysctl net.ipv4.tcp_available_congestion_control
|
如果结果中有bbr, 则证明你的内核已开启bbr
执行
1
|
ps -ef| grep bbr
|
,看到有 tcp_bbr 模块即说明bbr已启动。
转自: Google BBR 优化算法,实现TCP加速,一键安装BBR