前言

Oracle VPS 注册了一个多月也没有时间折腾,正好昨天能够有库存创建VPS了,于是升级了内核,开启了原版BBR,记录一下流程,新手顺着命令一步步来执行即可.

重要提示

由于甲骨文 CentOS 7 系统更新频繁,请参考以下日期来使用

2021.2.2 日更新:手动安装秋水 BBRPlus 内核,并一键脚本启用 BBRPlus 加速及优化.

本文为 Stille 原创文章.经实践,测试,整理发布.如需转载请联系作者获得授权,并注明转载地址.

配置流程

升级内核

更新 yum

yum -y update

查看内核

uname -r
# 内核版本 3.10.0-1062.12.1.el7.x86_64

手动下载秋水 BBRPlus版内核

wget https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/bbrplus/centos/7/kernel-4.14.129-bbrplus.rpm

手动安装内核

yum -y install kernel-4.14.129-bbrplus.rpm

更新引导

grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

列出系统开机启动项

sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/efi/EFI/centos/grub.cfg

设置新版内核默认启动项

grub2-set-default 0

重启

reboot

开启 BBRPlus 及优化

秋水一键脚本,选择7开启BBRPlus加速.
再次./tcp.sh运行脚本,选择10优化并重启完成.

wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh" && chmod +x tcp.sh && ./tcp.sh

历史存档 2020.3.24 日更新官方 5.3.13-1 内核及官方 BBR

2020.3.24 日更新:由于最新内核会导致无法启动,本文将手动安装5.3.13-1版内核.

升级内核

更新 yum

yum -y update

查看内核

uname -r
# 内核版本 3.10.0-1062.12.1.el7.x86_64

下载5.3.13-1版内核

wget http://mirror.rc.usf.edu/compute_lock/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-5.3.13-1.el7.elrepo.x86_64.rpm
# 备选地址
wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-5.3.13-1.el7.elrepo.x86_64.rpm

安装内核

yum -y install kernel-ml-5.3.13-1.el7.elrepo.x86_64.rpm

查看新内核是否安装成功

rpm -qa | grep kernel
# 确认结果中有 kernel-ml-5.3.13-1.el7.elrepo.x86_64

禁用 yum update 升级内核

vi /etc/yum.conf
# 在[main]下添加
exclude=kernel*

更新引导

sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

列出系统开机启动项

sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/efi/EFI/centos/grub.cfg

设置新版内核默认启动项

sudo grub2-set-default 0

重启

reboot

查看内核

uname -r
# 显示为 5.3.13-1.el7.elrepo.x86_64

开启BBR

查询是否安装BBR

lsmod | grep bbr
# 结果中没有 tcp_bbr 即没有安装

执行

sudo modprobe tcp_bbr
echo "tcp_bbr" | sudo tee --append /etc/modules-load.d/modules.conf
echo "net.core.default_qdisc=fq" | sudo tee --append /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee --append /etc/sysctl.conf

保存

sudo sysctl -p

检查 BBR

查看内核版本

uname -r
# 再次确认 5.3.13-1.el7.elrepo.x86_64

检查 BBR

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

sysctl net.ipv4.tcp_congestion_control

返回值一般为:net.ipv4.tcp_congestion_control = bbr

sysctl net.core.default_qdisc

返回值一般为:net.core.default_qdisc = fq

lsmod | grep bbr

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


结语

关于Linux详细的技术,我也不是很懂,都是参考网上的教程跟着尝试.上文流程我亲自测试过没问题,仅供参考.

本站提供免费和付费的技术支持.你可以通过留言,邮件,TG群的方式来技术交流和免费咨询.同时也可以付费支持的方式获得相关的技术支持,项目部署配置等服务.具体相关详情请点击查看 技术支持页面

如果喜欢我的文章,觉得对你有帮助,请随意赞赏!