BBR presentation
BBR
是 Google
提出的一种新型拥塞控制算法,可以使 Linux
服务器显著地提高吞吐量和减少 TCP
连接的延迟。 BBR
解决了两个问题: 再有一定丢包率的网络链路上充分利用带宽。非常适合高延迟,高带宽的网络链路, 降低网络链路上的buffer
占用率,从而降低服务器网络延迟, BBR(瓶颈带宽和RTT)是一种新的拥塞控制算法,由Google提供给Linux内核TCP堆栈。有了BBR,Linux服务器可以显着提高吞吐量并减少连接延迟。
此外,部署BBR很容易,因为该算法只需要在发送方进行更新,而不需要在网络或接收方进行更新。 使用前先看看服务器的操作系统内核版本, 开启 BBR 要求 4.10 以上版本 Linux 内核
,使用命令查看当前内核版本.
大部分服务器都是3.10的,你得到的结果是类似于这样的或者别的
[[email protected]_0_15_centos ~]# uname -r
3.10.0-1062.9.1.el7.x86_64
1.先用yum更新下系统
$ yum update -y
2.启用ELRepo仓库
$ rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
$ rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
$ yum --enablerepo=elrepo-kernel install kernel-ml -y
3.安装最新版本内核
$ yum --enablerepo=elrepo-kernel install kernel-ml
4.查看可以使用的内核版本
$ sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (4.18.7-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-862.11.6.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-063ec330caa04d4baae54c6902c62e54) 7 (Core)
5.修改内核版本
#编辑 /etc/default/grub 文件,设置 GRUB_DEFAULT=0,通过上面查询显示的编号为 0 的内核作为默认内核
vim /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=0 #这里修改成内核的版本#
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
6.生成 grub 配置文件并重启
$ grub2-mkconfig -o /boot/grub2/grub.cfg
$ reboot
重启完成后查看内核是否已更新到4.10以上版本
7.内核升级完成后,开始BBR加速
$ echo 'net.core.default_qdisc=fq' | sudo tee -a /etc/sysctl.confnet.core.default_qdisc=fq
$ echo 'net.ipv4.tcp_congestion_control=bbr' | sudo tee -a/etc/sysctl.confnet.ipv4.tcp_congestion_control=bbr
$ sudo sysctl -p
8.检查BBR是否启用成功<
$ sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = bbr cubic reno
# 当返回结果包含bbr,则启用成功
$ lsmod | grep bbr
tcp_bbr 20480 1
# 当能查询到bbr,则启用成功
SSR链接试下速度,直播1080P,毫无压力,完美
9.一键开启脚本
如果你觉得上面的方法太麻烦了,也搞不懂,这里有一键脚本,但是有些厂商的主机不支持,比如腾讯云的主机,不支持的话就使用上面的方法也是一样的。傻瓜操作支持一键升级最新版本的内核并开启BBR
加速,BBR
支持4.9
以上的内核版本,如果低于这个版本则会自动下载最新内容版本的内核后开启,如果高于4.9
以上则自动开启BBR
加速
$ git clone -b master https://github.com/flyzy2005/ss-fly
$ ss-fly/ss-fly.sh -bbr