CentOS 更新内核并开启 TCP BBR 方法

Kevin 教程 896 次浏览 抢沙发

BBR 是由 Google 设计开发的 TCP 拥塞控制算法,属于单边网络加速方式,其在 Linux 内核 4.9 版本开始被加入。较之前其它流行算法,TCP BBR 提供更高网络吞吐量和降低延迟。由于 CentOS 默认内核版本低,开启 BBR 需要先升级系统内核

更新后如果查询内核版本是 4.1x 或 4.2x 也是支持 BBR 的。有些人可能会问,上面不是说 4.9 开始才支持 BBR 吗?这个问题与内核版本命名有关,有时会造成误解。4.9 按惯常理解是 4.09。

确保内核版本满足要求后,检查是否已设置加载tcp_bbr模块。

lsmod | grep bbr

没有返回内容的话,手动设置加载tcp_bbr模块。

modprobe tcp_bbr
echo "tcp_bbr" | tee --append /etc/modules-load.d/modules.conf

将相关配置写入系统文件并更新。其中 default_qdisc 在内核 4.13 版本起似乎不要求 fq qdisc 了,可以设置使用其它 qdisc。另外如果之后要关闭 BBR,将命令中的 fq 改为 cubic,bbr 改为 pfifo_fast。

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

reboot重启系统(非必需),用下面命令验证 BBR 生效状态,输出结果类似下面就表示已启用。

# 查询内核可用拥塞控制算法
[root@vpsdp ~]# sysctl -n net.ipv4.tcp_available_congestion_control
reno cubic bbr

# 查询内核当前拥塞控制算法
[root@vpsdp ~]# sysctl -n net.ipv4.tcp_congestion_control
bbr

# 查询系统是否加载 BBR 模块
[root@vpsdp ~]# lsmod | grep bbr
tcp_bbr                20480  6

如果想测试 BBR 加速效果,除了实际使用,还可以用 Linux 内核自带的 tc 工具模拟网络环境,如设置不同丢包率、延迟情况下测试。

发表评论

电邮地址用于 Gravatar 头像显示,不会被公开可见。