预备知识
在使用Google BBR之前,我们首先要了解它是什么。了解计算机网络的人都知道,在TCP连接中,由于需要维持连接的可靠性,引入了拥塞控制和流量管理的方法。
Google BBR就是谷歌公司提出的一个开源TCP拥塞控制的算法。对于该算法的分析,ss不经过其它的任何的优化就能轻松的跑满带宽。(speedtest测试或fast测试)。
由于Google BBR是新的,所以任何低于4.10的linux内核版本都需要升级才能使用,p.s.只有KVM架构的VPS才能使用本教程升级内核
,对于openvz的VPS用户若内核版本较低则无法使用。
最简单的方法就是使用Google BBR一键安装脚本。(不过,这里出于学习的目的,博主我决定使用原始升级法)
一、检查内核
远程连接终端,使用命令: uname -r
查看当前内核版本(注意本文使用的VPS系统是Centos,其它系统请绕道)。
得到结果:
3.10.0-693.el7.x86_64
如果当前内核版本低于4.10(继续步骤二),可使用 ELRepo 源更新:
http://elrepo.org/tiki/tiki-index.php
二、手动安装,升级内核
1.导入公钥 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
2.要为RHEL-安装ELRepo7,SL-7或CentOS-7:rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
(对应你的系统,其它请翻阅上面地址)
3.安装内核yum --enablerepo=elrepo-kernel install kernel-ml -y
执行后,效果如下:
[root@ ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@ ~]# rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
获取https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
准备中... ################################# [100%]
正在升级/安装...
1:elrepo-release-7.0-3.el7.elrepo ################################# [100%]
[root@ecs-zxDEN ~]# yum --enablerepo=elrepo-kernel install kernel-ml -y
已加载插件:fastestmirror
base | 3.6 kB 00:00:00
elrepo | 2.9 kB 00:00:00
elrepo-kernel | 2.9 kB 00:00:00
epel/x86_64/metalink | 30 kB 00:00:00
epel | 4.7 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/5): elrepo/primary_db | 467 kB 00:00:04
(2/5): epel/x86_64/group_gz | 95 kB 00:00:03
(3/5): elrepo-kernel/primary_db | 1.9 MB 00:00:05
(4/5): epel/x86_64/updateinfo | 1.0 MB 00:00:01
(5/5): epel/x86_64/primary_db | 6.8 MB 00:00:04
Determining fastest mirrors
* base: ftp.rezopole.net
* elrepo: repos.lax-noc.com
* elrepo-kernel: repos.lax-noc.com
* epel: lon.mirror.rackspace.com
* extras: miroir.univ-paris13.fr
* updates: centos.quelquesmots.fr
正在解决依赖关系
--> 正在检查事务
---> 软件包 kernel-ml.x86_64.0.5.6.7-1.el7.elrepo 将被 安装
--> 解决依赖关系完成
依赖关系解决
===========================================================================================================
Package 架构 版本 源 大小
===========================================================================================================
正在安装:
kernel-ml x86_64 5.6.7-1.el7.elrepo elrepo-kernel 49 M
事务概要
===========================================================================================================
安装 1 软件包
总下载量:49 M
安装大小:222 M
Downloading packages:
kernel-ml-5.6.7-1.el7.elrepo.x86_64.rpm | 49 MB 00:00:11
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
警告:RPM 数据库已被非 yum 程序修改。
正在安装 : kernel-ml-5.6.7-1.el7.elrepo.x86_64 1/1
验证中 : kernel-ml-5.6.7-1.el7.elrepo.x86_64 1/1
已安装:
kernel-ml.x86_64 0:5.6.7-1.el7.elrepo
完毕!
4.安装完成后,查看已安装的内核: rpm -qa | grep kernel
执行结果:
kernel-tools-3.10.0-693.el7.x86_64
kernel-headers-3.10.0-1062.18.1.el7.x86_64
kernel-tools-libs-3.10.0-693.el7.x86_64
kernel-3.10.0-693.el7.x86_64
kernel-devel-3.10.0-1062.18.1.el7.x86_64
kernel-ml-5.6.7-1.el7.elrepo.x86_64
在输出中看到类似 kernel-ml-5.6.7-1.el7.elrepo.x86_64 的内容,表示安装成功。
5.修改grub2引导 egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
执行结果:
CentOS Linux (5.6.7-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-8508293106977c25a934808909d9e8a1) 7 (Core)
6.如上,一共看到三个内核,设置需要的内核为启动项 grub2-set-default 0
(序号从0开始,这里表示第一项)
7.重启服务器 reboot
8.待重启完成后,重新使用 uname -r
查看内核版本:
5.6.7-1.el7.elrepo.x86_64
至此,内核升级成功。
三、进入主题,开启BBR
1.执行命令,写入两条配置文件并保存(下面共三条命令,分别执行):
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
2.检查是否开始成功 sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = bbr cubic reno
若出现BBR字样,表示已成功开启。
本文完