BBR,Bottleneck Bandwidth and RTT,谷歌开源的一种TCP拥塞控制算法(tcp_congestion_control):
已经提交到 Linux v4.9 及以上版本内核的TCP堆栈中。
即在 Linux 4.9 及以上版本可直接开启bbr?
# 查看 Linux 内核版本 root@ptr:~# uname -a Linux ptr 4.9.0-11-amd64 #1 SMP Debian 4.9.189-3 (2019-09-02) x86_64 GNU/Linux
查看当前系统使用的TCP拥塞控制算法
# 可以查看进程文件 root@ptr:~# cat /proc/sys/net/ipv4/tcp_congestion_control cubic # 或者使用 sysctl 命令 root@ptr:~# sysctl net.ipv4.tcp_congestion_control net.ipv4.tcp_congestion_control = cubic
使用的是 cubic 算法,是 Linux 2.6 之后默认的TCP拥塞控制算法。
cubic 是基于丢包的拥塞控制,而 bbr 是基于拥塞的拥塞控制。
以后有空再研究这些什么什么算法吧。
未开启 bbr 前的速度:
那么 Linux 4.9 版本怎么开启bbr?
开启 bbr,其实就是把 sysctl 的变量 net.ipv4.tcp_congestion_control 改一下。
# 修改 qdics 为 fq 平台(fq平台对高负载服务器表现更好) echo 'net.core.default_qdisc=fq' | sudo tee -a /etc/sysctl.conf # 修改TCP拥塞控制算法 echo 'net.ipv4.tcp_congestion_control=bbr' | sudo tee -a /etc/sysctl.conf # 应用 sysctl 配置 sudo sysctl -p # 查看是否开启 tcp_bbr 模块 root@ptr:~# lsmod | grep bbr tcp_bbr 20480 1
开启 bbr 后的速度:
虽然测试小鸡的网络不大好,但是速度的提升还是可见的。
更改 Linux 内核以开启 BBR
有新小鸡再记录吧…