Shadowsocks 服务端 Ubuntu 开启BBR加速
关于 BBR 加速算法
BBR是一款Google开发的TCP拥塞控制算法,开启这个算法的好处:
- 在有一定丢包率的网络链路上充分利用带宽。非常适合高延迟,高带宽的网络链路
- 降低网络链路上的buffer占用率,从而降低延迟。非常适合慢速接入网络的用户
先检查一下 Ubuntu 系统是否可以开启这个加速算法
uname -r
4.15.0-36-generic
Linux系统内核高于 4.9 就可以开启。如果你的系统内核低于4.9,升级 Ubnutu 到最新版本就可以了
下面默认 Ubuntu 内核版本高于4.9,基于KVM的 VPS(包括DO)
shadowsocks 服务端开启 BBR加速
开启 BBR 加速需要设置 Linux 内核参数。自定义内核参数最好的实践是这样的:
-
在 /etc/sysctl.d/ 下设置,尽量避免修改 /etc/sysctl.conf
-
文件名以数字开头,表示系统启动时文件加载的顺序,数字小的文件先加载,最后加载 sysctl.conf
-
文件名应该表示明确的意义,比如 50-tcp_fastopen.conf
kige@ubuntu:~$ su # echo 'net.core.default_qdisc=fq' > /etc/sysctl.d/98-bbr.conf # echo 'net.ipv4.tcp_congestion_control=bbr' >> /etc/sysctl.d/98-bbr.conf # sysctl --system
上面命令切换到 root 用户,把设置写入 .conf,然后用 sysctl --system 从系统目录重新读入所有配置
不要用 sysctl -p 来代替 sysctl --system,因为 sysctl --system 和重启系统的效果类似,于是我们可以测试出重启系统后的情况
用了 98-bbr.conf 而不是 50-bbr-conf,是为了覆盖 50-default.conf 中设定的默认值: net.core.default_qdisc = fq_codel
fq 和 fq_codel 有什么区别
CoDel 是 controlled delay的缩写
-
net.core.default_qdisc = fq_codel
最好的通用qdisc
-
net.core.default_qdisc = fq
用于胖服务器,fq_codel用于路由器,在虚拟化环境中,底层服务器是路由器,客户虚拟机是主机
检查 BBR 模块有没有启动:
kige@ubuntu:~$ lsmod | grep bbr
返回值有 tcp_bbr
说明 bbr 已启动
再检查我们刚才设置的值是否已经起作用:
$ sysctl net.ipv4.tcp_congestion_control
net.ipv4.tcp_congestion_control = bbr
$ sysctl net.core.default_qdisc
net.core.default_qdisc = fq
相关资源: