前言
2016 年 10 月份的一个 youtube 链接: Making Linux TCP Fast,首次发布了 BBR 算法, TCP 拥塞控制开启了新局面。
BBR (Bottleneck Bandwidth and Round-trip propagation time)是 Google 在 2016 年发布的一套拥塞控制算法。它尤其适合在存在一定丢包率的弱网环境下使用,在这类环境下,BBR 的性能远超 CUBIC 等传统的拥塞控制算法。
为什么安装原版BBR
1、安装BBR可以改善TCP的拥堵
大家都知道国外的服务器远离大陆,在国内连接速度并不是很好,尤其是在晚高峰期体验效果明显有所下降,此时我们需要安装一些脚本进行加速。前段时间 Google 开源了 TCP BBR 拥塞控制算法,根据用户使用体验的效果来看在 VPS 上开启了 TCP BBR 后网速最高可达到10几倍的提升。
关于 Google BBR 拥塞控制算法目前有很多个版本,一个原版,另一个为魔改版,还有加强版的BBRPLUS版本。魔改版 Google BBR 和PLUS版本的BBR是在原版的基础上调整了一些参数,加速效果更胜一筹。
2、我直接安装最好的加速不就完了?
说加速是因人而异的,倒不如说加速是根据你的网络环境和机器配置来选择的。原版的BBR稳定,和系统兼容性好,长期运行不容易出现错误。
但是其他衍生来的一些BBR加速版本,是经过原版的优化和改动,所以我们都不能说他是100%的。所以这边我们建议大家不要在你的生产系统上面折腾第三方的加速软件。
BBR加速脚本锦集
使用下述命令需确保系统安装了Curl、Wget。
Debian Ubuntu 安装 wget和crul
apt-get install wget
apt-get install curl
ContOS 安装 wget和curl
yum -y install wget
yum -y install curl
Debian CentOS 开启自带BBR加速
注意事项
本脚本只针对 Debian≥9 或是 CentOS≥8 以上的系统,可以开启系统自带BBR加速。
脚本如下:(可以一起复制运行,也可以分四行代码一条一条运行)
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
lsmod | grep bbr
四合一 BBR Plus / 原版BBR / 魔改BBR (已停更)
(https://github.com/cx9208/Linux-NetSpeed)
支持环境
Centos 7, Debian 8/9, Ubuntu 16/18 测试通过, 不支持 OVZ
wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh"
chmod +x tcp.sh
./tcp.sh
谷歌原版官方BBR加速脚本
适用环境
系统支持:CentOS 6 ,Debian 7 ,Ubuntu 12
虚拟技术: KVM、Xen、VMware 等,(OpenVZ 不支持!)
内存要求:≥128M
注意事项
安装 Google BBR 需升级系统内核,有可能出现系统不稳定的现象,请勿在重要的生产环境中安装,以免造成不可预料的后果。
Google BBR 和锐速不能同时安装,一个是升级内核,一个是降级内核。
安装脚本:
wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod x bbr.sh && ./bbr.sh
2.接下来BBR会自动开始安装,安装完成后会英文提示是否重启,输入y
回车重启。
3.等待大概一分钟,系统重启成功后,重新用VPS连接工具连接VPS服务器,输入以下命令验证BBR是否安装成功:
sysctl net.ipv4.tcp_congestion_control
如果得到如下结果则代表BBR安装成功:
net.ipv4.tcp_congestion_control = bbr
Linux一键安装常见/最新内核脚本
预先准备
centos:yum install ca-certificates wget -y && update-ca-trust force-enable
debian/ubuntu:apt-get install ca-certificates wget -y && update-ca-certificates
不卸载内核版本
wget -O tcpx.sh "https://github.com/ylx2016/Linux-NetSpeed/raw/master/tcpx.sh" && chmod +x tcpx.sh && ./tcpx.sh
卸载内核版本
wget -O tcp.sh "https://github.com/ylx2016/Linux-NetSpeed/raw/master/tcp.sh" && chmod +x tcp.sh && ./tcp.sh
关联action自动编译内核
https://github.com/ylx2016/kernel/
双持bbr+锐速
bbr 添加
echo "net.core.default_qdisc=fq" >> /etc/sysctl.d/99-sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.d/99-sysctl.conf
sysctl -p
编辑锐速文件
nano /appex/etc/config
检测代码有BUG,如果锐速正常 运行查看
bash /appex/bin/lotServer.sh status | grep "LotServer"
检查bbr 内核默认bbr算法不会有输出
lsmod | grep bbr
检查centos安装内核
grubby --info=ALL|awk -F= '$1=="kernel" {print i++ " : " $2}'
查看当前支持TCP算法
cat /proc/sys/net/ipv4/tcp_allowed_congestion_control
查看当前运行的算法
cat /proc/sys/net/ipv4/tcp_congestion_control
查看当前队列算法
sysctl net.core.default_qdisc
命令: uname -a
作用: 查看系统内核版本号及系统名称
命令: cat /proc/version
作用: 查看目录"/proc"下version的信息,也可以得到当前系统的内核版本号及系统名称
真实队列查看? 更改队列算法可能需要重启生效
tc -s qdisc show
/etc/sysctl.d/99-sysctl.conf
sysctl --system
一键安装最新内核并开启 BBR 脚本(秋水逸冰)(正在使用)
使用方法
使用root用户登录,运行以下命令:
wget --no-check-certificate -O /opt/bbr.sh https://github.com/teddysun/across/raw/master/bbr.sh
chmod 755/opt/bbr.sh
/opt/bbr.sh
安装完成后,脚本会提示需要重启 VPS,输入 y 并回车后重启。
重启完成后,进入 VPS,验证一下是否成功安装最新内核并开启 TCP BBR,输入以下检查:
No.1
uname -r
查看内核版本,显示为新版内核就表示 OK 了。
No.2
sysctl net.ipv4.tcp_available_congestion_control
返回值一般为:
net.ipv4.tcp_available_congestion_control = bbr cubic reno
或者:
net.ipv4.tcp_available_congestion_control = reno cubic bbr
No.3
sysctl net.ipv4.tcp_congestion_control
返回值一般为:
net.ipv4.tcp_congestion_control = bbr
No.4
sysctl net.core.default_qdisc
返回值一般为:
net.core.default_qdisc = fq
No.5
lsmod | grep bbr
返回值有 tcp_bbr 模块即说明 bbr 已启动。比如:
tcp_bbr 204803
注意:并不是所有的 VPS 都会有此返回值,若没有也属正常。
特别说明
如果你使用的是 Google Cloud Platform (GCP)更换内核,有时会遇到重启后,整个磁盘变为只读的情况。只需执行以下命令即可恢复:
mount -o remount rw /
文章内容来自以下平台:某些无法在此处展示的网站