ubuntu和centos7上开启TCP BBR拥塞控制算法,附一键脚本


ubuntu和centos7上开启TCP BBR拥塞控制算法
查找相关文章:ubuntu centos7 bbr

一、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 
sudo apt-get remove linux-image-[Tab补全] #删4.9.0以外的旧内核


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

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

update-grub
reboot


查看下是否有BBR:

lsmod | grep bbr

 

二、centos7:

   

wget http://mirrors.kernel.org/debian/pool/main/l/linux/linux-image-4.9.0-rc8-amd64-un
signed_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-a
md64.img 4.9.0-rc8-amd64
grub2-mkconfig -o /boot/grub2/grub.cfg

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


开启BBR

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

然后reboot重启

查看下是否有BBR:

lsmod | grep bbr


centos7 一键脚本

用之前先把/etc/sysctl.conf 文件中 关于 net.ipv4.tcp_congestion_control的配置注释掉

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

#开启bbr
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

#调整内核启动顺序
grub2-set-default "CentOS Linux (4.9.0-rc8-amd64) 7 (Core)"

grub2-editenv list

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

在vps里面新建一个文件,把代码拷贝到新建的文件里面,赋予执行权限,执行就行了

最后重启机子 reboot



Centos 内核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/


安装方法:rpm -ivh 地址

地址

EL6(Centos6/RedHat6) : http://elrepo.org/people/ajb/devel/kernel-ml/el6/x86_64/RPMS/kernel-ml-4.9.0-0.rc8.el6.elrepo.x86_64.rpm

EL7(Centos7/RedHat7) : http://elrepo.org/people/ajb/devel/kernel-ml/el7/x86_64/RPMS/kernel-ml-4.9.0-0.rc8.el7.elrepo.x86_64.rpm




PS.还有一些devel headers的包啥的你们看心情吧,我为了稳定点是全装了,需要注意的是有些和原依赖有冲突
请使用rpm -qa|grep kernel获取包全名,
使用rpm -e 包全名 --nodeps 进行强制删除
然后rpm -ivh 地址 进行安装



另外部分机器重启后不会使用新内核,请修改/etc/grub.conf,查看default=,0为下方第一个内核,一般是最新的(也就是我们安装的)