开启TCP BBR加速:ubuntu/debian/centos

kevin.Zhu 发布于:2017-5-4 8:42 分类:Linux  有 16 人浏览,获得评论 0 条  

http://www.8uc8.com/52.html

 

20161016152908882.jpg
BBR 目的是要尽量跑满带宽, 并且尽量不要有排队的情况, 效果并不比速锐差

最新 4.9.0-rc8 内核已支持 tcp_bbr 下面简单讲述如何开启
已在 Debian8/Ubuntu14 下测试成功

1.ubuntu/debian系统

下载最新内核,最新内核查看这里

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 

apt-get purge 旧内核 

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

2.centos系统

一键安装BBR
此内核特点:
1、无需手动修改grub启动项;
2、已经默认设置拥塞算法为BBR,无需额外设置,重启即可用

安装步骤:

wget -O- http://soft.wellphp.com/scripts/install_bbr_centos.sh | bash
安装结束之后,重启:

reboot
重启之后验证是否已经成功:

sysctl -a|grep tcp_congestion_control
如果不幸失败,可以通过VNC修改启动项到老的内核。 

下面是手动安装

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

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 

修改/boot/grub2/grub.cfg 把4.9.0的内核启动 放到第一位。
然后reboot

grub2-set-default "CentOS Linux (4.9.0-rc8-amd64) 7 (Core)"

grub2-editenv list

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

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 

3.相关资料

entos 6 & Centos 7的4.9内核RPM包

Centos6
http://elrepo.org/people/ajb/devel/kernel-ml/el6/x86_64/RPMS/

Centos7
http://elrepo.org/people/ajb/devel/kernel-ml/el7/x86_64/RPMS/