【Linux】 为服务器开启BBR拥塞控制算法

admin / Linux / / 617 字 · 约 3 分钟 / 469 次阅读 /
📑 文章章节大纲 (点击平滑直达)

众所周知 TCP 在丢包率高的时候,带宽急剧下降,谷歌在 Linux 内核中增加了 BBR 算法,通过修改 TCP 拥塞控制算法模块即可大幅增加可用带宽,好神奇啊……BBR 是来自于 Google 的黑科技,目的是通过优化和控制 TCP 的拥塞,充分利用带宽并降低延迟,起到神奇般的加速效果。 在 BBR 之前,比较有名的就是国产的锐速了,不过,由于锐速是个国产的闭源软件,所以一直纠结不想装在 VPS 上。正好,BBR 的出现,又成为一个可供折腾的对象。BBR 这个特性其实是在 Linux 内核 4.9 才计划加入的。所以,要开启 BBR,需要内核版本在 Linux kernel 4.9 以上。下面纪录一下如何升级 Linux 内核,并且开启 BBR:

Debian 8 / Ubuntu 14 / Ubuntu 16 / Ubuntu 18

提示:如果安装最新的 Ubuntu 17 及以上版本,有可能内核已经为 4.10 了,可以不用再升级内核了 - 安装内核

wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.11.4/linux-image-4.11.4-041104-generic_4.11.4-041104.201706071003_amd64.deb
  • 清理旧内核
apt-get remove
  • 更新 grub 系统引导文件并重启
update-grub
reboot

开启 BBR

开机后执行 uname -r 确认内核版本是否为 4.9 以上版本。 执行 lsmod | grep bbr ,如果执行结果中没有 tcp_bbr 的话就先执行

modprobe tcp_bbr # 加载tcp_bbr模块
echo "tcp_bbr" >> /etc/modules-load.d/modules.conf # 开机就加载该模块

执行

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

或者编辑文件 /etc/sysctl.conf 添加

net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr

执行 sysctl -p ,使其立即生效 执行

sysctl net.ipv4.tcp_available_congestion_control

sysctl net.ipv4.tcp_congestion_control

如果结果都有 bbr, 则证明你的内核已开启 bbr。看到有 tcp_bbr 模块即说明 bbr 已启动,这样,就可以开始体验 Google 的黑科技加速了……

admin

admin

云原生架构 · 全栈开发

感谢阅读本文!记录系统架构思考与实战复盘。专注于 Python、Django、PostgreSQL 与云原生容器化工程实践。