BBR是谷歌开发的新的TCP加速算法,在网络状况不好的服务器上开启TCP的bbr,可以在无需增加任何硬件投入的情况下实现网络加速,并且客户端无需做任何配置,因此使用起来非常的方便。TCP加速对网络状况较好的内网环境,或者大带宽的境内服务器优化效果不明显,对于海外的VPS则有较好的加速效果。
适用场景:
需要处理大量的网络请求(如高访问量网站、内容分发网络)。
有跨境连接需求(如从大陆访问海外服务器或海外用户访问大陆服务器)。
对网络延迟敏感的应用(如视频、实时通信、游戏等)。
飘易手里的VPS服务器是Centos 7.9 系统,带宽 50Mbps, 默认不开通 BBR 的情况下,平均下载速度1.37MB/s,峰值2.42MB/s。
而开通了BBR之后,平均下载速度5.43MB/s,峰值6.39MB/s。这个速度已经基本跑满了服务器的带宽。
测速对比:
项目 | 未开启BBR | 开启BBR |
VPS1 | 1.37MB/s | 5.43MB/s |
400KB/s(FTP下载) | 1.2MB/s(FTP下载) | |
VPS2 | 2MB/s | 6.67MB/s |
510KB/s(FTP下载) | 2MB/s(FTP下载) |
可以看出,开启bbr后,速度提升还是比较明显的。
先看系统版本
cat /etc/redhat-release
返回:
CentOS Linux release 7.9.2009 (Core)
开启 BBR 要求 4.10 以上版本 Linux 内核,查看当前内核版本:
uname -ra
返回:
kernel-3.10.0-1160.114.2.el7.x86_64
直接下载新内核rpm包安装
wget https://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-5.4.278-1.el7.elrepo.x86_64.rpm yum install kernel-lt-5.4.278-1.el7.elrepo.x86_64.rpm
下面2个不是必须,可选安装:
wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-headers-5.4.226-1.el7.elrepo.x86_64.rpm
wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-devel-5.4.226-1.el7.elrepo.x86_64.rpm
查看内核列表
rpm -qa |grep kernel
返回:
kernel-tools-3.10.0-1160.114.2.el7.x86_64
kernel-tools-libs-3.10.0-1160.114.2.el7.x86_64
kernel-lt-5.4.278-1.el7.elrepo.x86_64
kernel-3.10.0-1160.114.2.el7.x86_64
查看内核顺序
awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
返回:
0 : CentOS Linux (5.4.278-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1160.114.2.el7.x86_64) 7 (Core)
新内核在索引 0 的位置上,修改引导:
grub2-set-default 0
检查内核
grub2-editenv list
返回
saved_entry=0
开启bbr,修改/etc/sysctl.conf:
echo 'net.core.default_qdisc=fq' | sudo tee -a /etc/sysctl.conf echo 'net.ipv4.tcp_congestion_control=bbr' | sudo tee -a /etc/sysctl.conf
重启
reboot
安装BBR完成后,可以执行以下命令来检查BBR是否成功开启:
sudo sysctl net.ipv4.tcp_available_congestion_control
输出应该是:
net.ipv4.tcp_available_congestion_control = reno cubic bbr
sudo sysctl -n net.ipv4.tcp_congestion_control
输出应该是:
bbr
速度测试
安装完BBR后,可以执行以下命令进行速度测试:
sudo dd if=/dev/zero of=500mb.zip bs=1024k count=500
返回:
500+0 records in
500+0 records out
524288000 bytes (524 MB) copied, 0.798668 s, 656 MB/s
http下载速度测试:
开启前:1.5-2.5MB/s
开启后:7-8MB/s
具体的测速对比见上文。