启用 TCP BBR 拥塞控制算法

BBR (Bottleneck Bandwidth and Round-trip) 目的是要充分利用带宽,并且尽量降低网络链路上的 buffer 占用率,从而降低延迟。在有一定丢包率的网络链路上使用 TCP BBR 有着提高传输速度的作用。

内核版本

自从 Linux 内核 4.9 开始已经封装了这个新的 TCP 控制算法 BBR。

BBR

BBR 算法由 Google 提出,原先主要用于 Google 内部网络的速度提升,现在 Google 把它提交到了 Linux 内核,所有人都可以使用了。从 Google 的报告来看,这一新的算法可以明显降低网络延迟。Youtube 全球的延迟比之前的 CUBIC 算法下降了 50% 以上。

升级内核

基于 KVM 架构 VPS 可以将内核更新到 4.9 以上的版本从而启用该功能。

Debian/Ubuntu 之内核升级

开启 TCP BBR

执行 echo 命令,在 /etc/sysctl.conf 文件的末尾添加两行配置。其中第一行 default_qdisc 指的是默认的 TCP 队列算法,fq 是 Google 推荐的算法,更适用于 BBR。第二行则是在 IPv4 协议中开启拥塞控制算法。

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

直接重启主机是可以的加载新的配置。如果不想重启,可以使用以下命令来加载新的配置参数。

sysctl -p

执行下面的两个命令。如果结果都有 bbr,则证明你的内核已开启 TCP BBR!

sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control

然后使用下面的命令来验证 BBR 已生效。结果会显示 tcp_bbr 加一串数字,说明 BBR 算法已启动。

lsmod | grep bbr

2 Replies to “启用 TCP BBR 拥塞控制算法”

Leave a Reply

Your email address will not be published. Required fields are marked *