BBR 目的是要尽量跑满带宽, 并且尽量不要有排队的情况, 效果并不比速锐差
Linux kernel 4.9+ 已支持 tcp_bbr 下面简单讲述基于KVM架构VPS如何开启
安装Linux kernel 4.9以上的版本
一般安装最新版本内核
Debian 8+ / Ubuntu 14.04
下载最新内核
# wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.14.12/linux-image-4.14.12-041412-generic_4.14.12-041412.201801051649_amd64.deb
安装内核
#dpkg -i linux-image-4.*.deb
删除旧版内核(可选)
# dpkg -l | grep linux-image
# apt-get purge 旧内核
更新grub并重启服务器
# update-grub
# reboot
Ubuntu16.04
安装 Hardware Enablement Stack (HWE),自动更新内核
# apt install --install-recommends linux-generic-hwe-16.04
删除旧版内核(可选)
# apt autoremove
重启服务器以启用最新内核
# reboot
CentOS6.x
启用elrepo源并安装kernel-ml
# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm
# yum --enablerepo=elrepo-kernel install kernel-ml -y
检查内核是否已经安装
# rpm -qa | grep kernel
更新grub并重启服务器
# sed -i 's:default=.*:default=0:g' /etc/grub.conf
# reboot
CentOS7.x
启用elrepo源并安装kernel-ml
# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
# yum --enablerepo=elrepo-kernel install kernel-ml -y
检查内核是否已经安装
# rpm -qa | grep kernel
更新grub2.cfg
# grub2-mkconfig -o /boot/grub2/grub.cfg
重启服务器
# reboot
检查内核版本
通过uname -r
命令检查内核版本是否大于4.9
# uname -r
启用BBR拥塞算法
加载内核模块
# modprobe tcp_bbr
# echo "tcp_bbr" >> /etc/modules-load.d/modules.conf
修改内核参数
# echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
# echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
# sysctl -p
检查BBR是否已经开启
# lsmod | grep bbr
# sysctl net.ipv4.tcp_available_congestion_control
# sysctl net.ipv4.tcp_congestion_control
如结果都有bbr,则表示已经开启BBR算法