什么是Google BBR
Google BBR就是谷歌公司提出的一个开源TCP拥塞控制的算法,通俗来讲就是对Linux内核TCP协议的优化从而达到提速的目的。但是注意的是,但是bbr不能改变地理位置的限制,也就是说他不会改变网络的线路;安装和开启bbr往往要更新内核,因此对于VPS而言,推荐选择KVM构架。本文讲bbr在CentOS 7下的安装和启用的方法.
1,如何在Centos7上安装BBR
1、yum系统更新
输入 yum update
下载更新内容后,按 Y
确认更新
2、查看系统版本cat /etc/redhat-release
输出如下则表示已升级到7.7 或更新版本CentOS Linux release 7.7.1908 (Core)
3、Centos7 安装elrepo并升级内核:
centos7
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
centos8.0
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh https://www.elrepo.org/elrepo-release-8.0-2.el8.elrepo.noarch.rpm
启用 ELRepo 源仓库:
`yum --disablerepo="*" --enablerepo="elrepo-kernel" list available`
`yum -y --enablerepo=elrepo-kernel install kernel-ml kernel-ml-devel`
正常情况下将输出如下信息:
Transaction Summary
===================================================================================
Install 1 Package
Total download size: 46 M
Installed size: 205 M
Downloading packages:
kernel-ml-5.4.1-1.el7.elrepo.x86_64.rpm | 46 MB 00:00:19
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
Installing : kernel-ml-5.4.1-1.el7.elrepo.x86_64 1/1
Verifying : kernel-ml-5.4.1-1.el7.elrepo.x86_64 1/1
Installed:
kernel-ml-5.4.1-1.el7.elrepo.x86_64
Complete!
表示更新内核成功.
使用下面命令查看当前有哪些内核rpm -qa |grep kernel
举例内核列表 排位0~5个
0 kernel-devel-3.10.0-1062.el7.x86_64
1 kernel-ml-devel-5.4.1-1.el7.elrepo.x86_64
2 kernel-tools-libs-3.10.0-1062.el7.x86_64
3 kernel-3.10.0-1062.el7.x86_64
4 kernel-tools-3.10.0-1062.el7.x86_64
5 kernel-ml-5.4.1-1.el7.elrepo.x86_64
可以看到,一般自带的是 3.XX版 ,新增加了 5.XX版本
比如我们要把CentOS Linux (ml-5.4.1-1.el7.elrepo.x86_64)内核设置为默认
顺便说一下内核版本的含义:ml-5.4.1-1.el7.elrepo.x86_64
ml:mainline 代表主线 5主版本 4代表修订版本 1表示错误修正次数 EL7代表Enterprise Linux 最高支持7G内存 elrepo是国外一个开源库名称 X86_64代表64位系统
选择排位5的最新内核 (你要自己看是排位几)grub2-set-default 5
查看当前默认内核启动项:grub2-editenv list
确认已更改成需要的内核后
然后重启
reboot
重新链接后最后uname -r
返回 以下内容表示内核升级到了最新
5.4.1-1.el7.elrepo.x86_64
然后我们开始设置BBR(注意: 如果重启后发现内核还是旧版本,请先看本文第二段的方法启用新内核.,再回来此步往下)
编辑sysctl.conf
vi /etc/sysctl.conf
在sysctl.conf里面添加如下内容
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
输入下面的代码加载参数使其生效sysctl -p
不懂XSHELL下如何编辑看教程:
https://www.pigji.com/158.html
正常情况下会输出我们之前加入的内容:显示
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
好了,现在开始可以验证bbr是否已经开启
如果输入sysctl net.ipv4.tcp_available_congestion_control
返回以下内容
net.ipv4.tcp_available_congestion_control = reno cubic bbr
如果输入sysctl net.ipv4.tcp_congestion_control
返回以下内容
net.ipv4.tcp_congestion_control = bbr
则表示内核已开启BBR
如果输入lsmod | grep bbr
返回以下内容,表示BBR启动成功
tcp_bbr 20480 2
如何关闭BBR插件
sed -i '/net\.core\.default_qdisc=fq/d' /etc/sysctl.conf
sed -i '/net\.ipv4\.tcp_congestion_control=bbr/d' /etc/sysctl.conf
sysctl -p
好了,BBR的安装教程结束.
Linux内核版本一直更新.如果版本出现新的与本文有出入自行判断.
2,修改 grub 配置使用新内核版本启动
查看当前默认启动内核:dnf install grubby
grubby --default-kernel
当前最新版本 5.7.10,一般安装完就会以最新内核启动,回返回信息:/boot/vmlinuz-5.7.10-1.el8.elrepo.x86_64
如不是最新内核,显示查看所有内核:grubby --info=ALL
列表大概如下图: 排列是从0开始的
index=0
kernel="/boot/vmlinuz-5.7.10-1.el8.elrepo.x86_64"
args="ro crashkernel=auto biosdevname=0 net.ifnames=0 rhgb quiet $tuned_params"
root="UUID=fb06df01-a38e-4da4-beed-12f052e55eb2"
initrd="/boot/initramfs-5.7.10-1.el8.elrepo.x86_64.img $tuned_initrd"
title="Red Hat Enterprise Linux (5.7.10-1.el8.elrepo.x86_64) 8.2 (Ootpa)"
id="2f77be462c964e7eba380ecec932f095-5.7.10-1.el8.elrepo.x86_64"
index=1
kernel="/boot/vmlinuz-4.18.0-193.6.3.el8_2.x86_64"
args="ro crashkernel=auto biosdevname=0 net.ifnames=0 rhgb quiet $tuned_params"
root="UUID=fb06df01-a38e-4da4-beed-12f052e55eb2"
initrd="/boot/initramfs-4.18.0-193.6.3.el8_2.x86_64.img $tuned_initrd"
title="CentOS Linux (4.18.0-193.6.3.el8_2.x86_64) 8 (Core)"
id="2f77be462c964e7eba380ecec932f095-4.18.0-193.6.3.el8_2.x86_64"
index=2
kernel="/boot/vmlinuz-0-rescue-2f77be462c964e7eba380ecec932f095"
args="ro crashkernel=auto biosdevname=0 net.ifnames=0 rhgb quiet"
root="UUID=fb06df01-a38e-4da4-beed-12f052e55eb2"
initrd="/boot/initramfs-0-rescue-2f77be462c964e7eba380ecec932f095.img"
title="CentOS Linux (0-rescue-2f77be462c964e7eba380ecec932f095) 8 (Core)"
id="2f77be462c964e7eba380ecec932f095-0-rescue"
然后指定最新的内核就行grubby --set-default /boot/vmlinuz-5.7.10-1.el8.elrepo.x86_64
3,一键启用BBR 安装脚本
上面的觉得麻烦,繁琐看不懂?
直接懒人脚本 一键安装BBR脚本wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh
安装完成重启reboot
自行检查内核是否已经是最新uname -r
输入sysctl net.ipv4.tcp_available_congestion_control
如显示以下内容表示BBR内核已启动
net.ipv4.tcp_available_congestion_control = reno cubic bbr
输入 lsmod | grep bbr
返回以下内容,表示BBR启动成功
tcp_bbr 20480 2
懒人脚本非常方便,快速启用BBR。
评论前必须登录!
注册