風車

CentOS Stream 8 快速开启 Google BBR TCP加速 / 升级内核

Google BBR 算法是一个TCP加速优化工具,Google 2016年已开源其 TCP BBR 拥塞控制算(BBR2 已经在路上),并提交至 Linux 内核,根据实地测试,在部署了最新版内核并开启 TCP BBR VPS 上,网络连接状况确实有很不错的提升。

CentOS Stream 8 快速开启 Google BBR TCP加速

只要 Linux 内核版本大于 4.9 或者以上版本并且非运行于 OpenVZ、Docker 环境均可支持 BBR 算法,推荐开启。CentOS 8 默认内核版本为 4.18.x,默认编译了 TCP BBR 模块,所以可以直接通过参数开启,操作非常简单。

Vultr VPS CentOS Linux release 8.0.1905 系统测试通过。

CentOS Stream 8 开启 BBR 教程

修改系统变量并保存生效:

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

检查 BBR 是否开启成功

No.1

sysctl net.ipv4.tcp_available_congestion_control

返回值一般为:

net.ipv4.tcp_available_congestion_control = bbr cubic reno

或者:

net.ipv4.tcp_available_congestion_control = reno cubic bbr

表示已开启 BBR。

No.2

sysctl net.ipv4.tcp_congestion_control

返回值一般为:

net.ipv4.tcp_congestion_control = bbr

No.3

sysctl net.core.default_qdisc

返回值一般为:

net.core.default_qdisc = fq

No.4

lsmod | grep bbr

返回值有 tcp_bbr 模块即说明 bbr 已启动。注意:并不是所有的 VPS 都会有此返回值,若没有也属正常。

CentOS Stream 8 升级内核

参考资料:https://www.vpser.net/manage/centos-rhel-upgrade-kernel.htmlhttps://www.aikaiyuan.com/12532.html

查看当前内核版本

uname -r

Linux 内核最新稳定版可以从 https://www.kernel.org 查看,当前(2022-03-11)最新稳定版为 5.16.14

升级内核

安装 ELRepo 源:

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm

启用 ELRepo 源仓库:

yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

安装新内核:

yum -y --enablerepo=elrepo-kernel install kernel-ml kernel-ml-devel

如无意外,最新内核已经安装好。(国内VPS主机,如腾讯云可能会因为网络问题,各种报错)

修改 grub 配置使用新内核版本启动

查看当前默认启动内核:

dnf install grubby
grubby --default-kernel

当前最新版本 5.16.14,一般安装完就会以最新内核启动,回返回信息:

/boot/vmlinuz-5.16.14-1.el8.elrepo.x86_64

如不是,查看所有内核:

grubby --info=ALL

列表:

[root@TEST ~]# grubby --info=ALL
index=0
kernel="/boot/vmlinuz-4.18.0-358.el8.x86_64"
args="ro vultr consoleblank=0 rhgb quiet $tuned_params"
root="UUID=ae506311-affc-45c6-a72d-f992549b29ef"
initrd="/boot/initramfs-4.18.0-358.el8.x86_64.img $tuned_initrd"
title="CentOS Stream (4.18.0-358.el8.x86_64) 8"
id="919ffa38e45c49989a3b5b500a42f9cc-4.18.0-358.el8.x86_64"
index=1
kernel="/boot/vmlinuz-0-rescue-919ffa38e45c49989a3b5b500a42f9cc"
args="ro vultr consoleblank=0 rhgb quiet"
root="UUID=ae506311-affc-45c6-a72d-f992549b29ef"
initrd="/boot/initramfs-0-rescue-919ffa38e45c49989a3b5b500a42f9cc.img"
title="CentOS Stream (0-rescue-919ffa38e45c49989a3b5b500a42f9cc) 8"
id="919ffa38e45c49989a3b5b500a42f9cc-0-rescue"
index=2
kernel="/boot/vmlinuz-5.16.14-1.el8.elrepo.x86_64"
args="ro vultr consoleblank=0 rhgb quiet $tuned_params"
root="UUID=ae506311-affc-45c6-a72d-f992549b29ef"
initrd="/boot/initramfs-5.16.14-1.el8.elrepo.x86_64.img $tuned_initrd"
title="CentOS Stream (5.16.14-1.el8.elrepo.x86_64) 8"
id="be1c041ea03d46628a79fbc88a57d1fc-5.16.14-1.el8.elrepo.x86_64"
index=3
kernel="/boot/vmlinuz-4.18.0-365.el8.x86_64"
args="ro vultr consoleblank=0 rhgb quiet $tuned_params"
root="UUID=ae506311-affc-45c6-a72d-f992549b29ef"
initrd="/boot/initramfs-4.18.0-365.el8.x86_64.img $tuned_initrd"
title="CentOS Stream (4.18.0-365.el8.x86_64) 8"
id="be1c041ea03d46628a79fbc88a57d1fc-4.18.0-365.el8.x86_64"
index=4
kernel="/boot/vmlinuz-0-rescue-be1c041ea03d46628a79fbc88a57d1fc"
args="ro vultr consoleblank=0 rhgb quiet"
root="UUID=ae506311-affc-45c6-a72d-f992549b29ef"
initrd="/boot/initramfs-0-rescue-be1c041ea03d46628a79fbc88a57d1fc.img"
title="CentOS Stream (0-rescue-be1c041ea03d46628a79fbc88a57d1fc) 8"
id="be1c041ea03d46628a79fbc88a57d1fc-0-rescue"

然后指定新内核启动:

grubby --set-default /boot/vmlinuz-5.16.14-1.el8.elrepo.x86_64

或者:

grubby --set-default-index=2

重启系统 reboot,然后 uname -r 查看就是新内核。