CentOS 7 升级内核开启 BBR

有两台在美国的 VPS,带宽是千兆, 系统跑的是 CentOS 7,不过一直以来都跑不满百兆.最近看到 Linux Kernel 4.9 版本已经正式发布有段时间了,而谷歌的 BBR 流量拥塞算法已经合并到 4.9 的内核主分支中了, 就记录下升级CentOS 内核试试 BBR 的过程.

首先要有 root 或 sudo 权限.

# 安装最新 Linux Kernel 的 CentOS 源
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

# 安装完毕后,查看当前安装的所有可引导的内核版本
awk -F \' '1=="menuentry " {print i++ " : "2}' /etc/grub2.cfg

# 替换启动引导为最新的内核,排序的头一位的编号为 0 ,第二位的编号为 1,以此类推,选择最新的内核版本即可
grub2-set-default 0

# 重启生效
reboot

# 查看当前内核
uname -r

# 开启 BBR, 顺带开启TFO
echo 'net.core.default_qdisc=fq' >> /etc/sysctl.conf
echo 'net.ipv4.tcp_congestion_control=bbr' >> /etc/sysctl.conf
echo 'net.ipv4.tcp_fastopen=3' >> /etc/sysctl.conf

# 生效
sysctl -p

# 验证,如果输出 bbr 则成功
sysctl -n net.ipv4.tcp_congestion_control