前言
什么是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 3
echo "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 是否生效
1
sudo sysctl -n net.ipv4.tcp_congestion_control
输出应该显示
bbr
继续验证
1
sudo sysctl net.ipv4.tcp_available_congestion_control
输出应该为下面包含
bbr
的类似结果:1
net.ipv4.tcp_available_congestion_control = reno cubic bbr
验证内核模块是否加载
1
lsmod | grep bbr
输出应该为下面类似结果:
1
tcp_bbr 16384 35
输出结果含义解释:
tcp_bbr
是一个与 BBR 相关的内核模块。16384
是该模块的模块大小(以字节为单位)。35
是使用这个模块的引用计数,表示有多少个进程或功能在使用这个模块。
5. 移除旧版内核(可选)
|
|
至此,完事儿~