前言
什么是BBR?
BBR(Bottleneck Bandwidth and Round-trip propagation time)是一种由Google开发的拥塞控制算法,用于优化TCP(Transmission Control Protocol)的传输性能。BBR 的设计目标是在网络中保持最大的带宽利用率,并在高延迟和高丢包的情况下提供更好的性能。
BBR 要求 Linux 内核版本为 4.9 或更高,内核就已经集成了 BBR 模块,如果你的内核版本满足要求,就直接跳到第四个步骤进行启用,适用于绝大部分 Linux 发行版,比如Ubuntu、Debian、CentOS等等。
因为 CentOS 7 系统内核版本一般比较旧,所以大部分该系统需要手动升级内核后再启用。
步骤
1. 查看系统内核版本
| |
该命令会输出如下类似结果:6.6.2-1.el7.elrepo.x86_64,这是我已经升级过的了,如果版本等于或高于 4.9 ,那么直接跳到第四步即可。
2. 安装新版内核
如果内核版本不满足条件,那么输入如下命令安装升级新版内核:
| |
选择 kernel-ml 是为了安装更现代的主线内核。
3. 修改内核相关设置
更新 GRUB 配置:
| |
重启系统:
| |
在重启后,系统将使用新安装的内核(可以再次使用第一步内的命令进行验证)。
4. 开启BBR
启用 BBR
1 2 3echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf sudo sysctl -p验证 BBR 是否生效
1sudo sysctl -n net.ipv4.tcp_congestion_control输出应该显示
bbr继续验证
1sudo sysctl net.ipv4.tcp_available_congestion_control输出应该为下面包含
bbr的类似结果:1net.ipv4.tcp_available_congestion_control = reno cubic bbr验证内核模块是否加载
1lsmod | grep bbr输出应该为下面类似结果:
1tcp_bbr 16384 35输出结果含义解释:
tcp_bbr是一个与 BBR 相关的内核模块。16384是该模块的模块大小(以字节为单位)。35是使用这个模块的引用计数,表示有多少个进程或功能在使用这个模块。
5. 移除旧版内核(可选)
| |
至此,完事儿~