Centos 6、7 配置BBR加速

uptade : 2020-08-27

介绍:当我们对网络延时、丢包率等要求较高时,我们可以通过本身的骨干网络优化网络,或是专线,或是VPN,但是最底层的优化是系统优化,成本低,效果快;因此,想通过这篇一起和大家聊聊网络优化加速–BBR;

what is BBR:

TCP BBR是谷歌研发的TCP拥塞控制算法。BBR目的是要尽量跑满带宽,并且尽量不要有排队的情况。BBR可以起到单边加速TCP连接的效果。目的是最大化利用网络上瓶颈链路的带宽。

适用场景:

在有一定丢包率的网络链路上充分利用带宽。非常适合高延迟,高带宽的网络链路。降低网络链路上的buffer占用率,从而降低延迟。非常适合慢速接入网络的用户(如VPS)。
Google 在 2016年9月份开源了他们的优化网络拥堵算法BBR,最新版本的 Linux内核(4.9-rc8)中已经集成了该算法。

一、准备要求(Prerequisites)

- A CentOS 6/7 x64 server instance.
- A sudo user.
- http://mirrors.coreix.net/elrepo-archive-archive/kernel/el6/x86_64/RPMS/

二、部署安装BBR

1. 升级系统kernel(4.9.0 才开始支持 BBR)
CentOS 6:

默认的CentOS 6的 elrepo 最新的kernel到 4.4.23 ,所以无法满足BBR安装要求;因此我们可以通过如下:

rpm -ivh http://mirrors.coreix.net/elrepo-archive-archive/kernel/el6/x86_64/RPMS/kernel-ml-4.18.20-1.el6.elrepo.x86_64.rpm

ERROR

error: "No such file or directory" setting key net.ipv4.tcp_congestion_control"   # kernel 内核版本不支持
CentOS 7:
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm 
yum --enablerepo=elrepo-kernel install kernel-ml -y 
2. 设置新内核启动顺序,并重启生效
CentOS 6:
vim /etc/grub.conf   # 编辑grub配置文件
修改 default 的值,一般是修改为0,因为 default 从 0 开始,一般新安装的内核在第一个位置,所以设置default=0
default=0
注:如果不生效可执行  grub-install  /dev/sda 或者  直接修改 /boot/grub/grub.conf 文件

# 重启系统
shutdown -r now 
CentOS 7:
# 查看当前内核顺序  默认从0 开始
[root@instance-1 ~]# egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d "'" 
CentOS Linux (5.8.3-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-1127.18.2.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-1062.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-50fd61429ad54298a6c1c4853efd0257) 7 (Core)
## 设置kernel 启动顺序
[root@instance-1 ~]# grub2-set-default 0
3. 启用BBR 加速
CentOS 6/7:
# 配置内核参数
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf 

# 重新加载sysctl.conf 配置文件
[root@instance-2 ~]# sysctl -p

#查看 net.ipv4.tcp_congestion_control  可选参数
[root@instance-2 ~]# sysctl  net.ipv4.tcp_congestion_control 
net.ipv4.tcp_congestion_control = bbr

#查看 net.ipv4.tcp_congestion_control  当前参数
[root@instance-2 ~]# sysctl -n  net.ipv4.tcp_congestion_control 
bbr

# 验证BBR 启用成功
[root@instance-2 ~]# lsmod | grep bbr  
tcp_bbr                20480  10 

三、自动化脚本

### kernel_update.sh   ***适用CentOS 7**** ### 
#!/bin/bash
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm 
yum --enablerepo=elrepo-kernel install kernel-ml -y
grub2-set-default 0  && shutdown -r now

### bbr_on.sh ***适用CentOS 6/7****### 
#!/bin/bash
uname -r
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
sysctl net.ipv4.tcp_available_congestion_control
lsmod | grep bbr

参考:

1. How to Deploy Google BBR on CentOS 7 in GCP
2.https://groups.google.com/g/bbr-dev/c/8pgyOyUavvY?pli=1
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值