Latest News : 亮瞎双眼的那些年!

CentOS 7 开启Google BBR

乱弹 admin 187 views 0 comments

BBR介绍

Google BBR (Bottleneck Bandwidth and RTT) 是一种新的TCP拥塞控制算法,它可以高效增加吞吐和降低网络延迟,并且Linux Kernel4.9+已经集成该算法。开启BBR也非常简单,因为它只需要在发送端开启,网络其他节点和接收端不需要任何改变。

升级内核

1. 查看当然内核版本

打开Terminal,输入uname -r查看:

# uname -r
3.10.0-957.21.2.el7.x86_64

我们看到输出的内核版本小于4.9,则表示内核需要升级。如果大于4.9,则跳过升级,可以直接开启BBR。

2. 升级内核

安装 ELRepo 仓库

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# yum install https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

这里以centos 7为例,如果你不清楚最新的版本RPM,可以打开http://elrepo.org查看对应系统的最新版本。

安装最新版kernel

# yum --enablerepo=elrepo-kernel install kernel-ml -y

确认是否安装成功

# rpm -qa | grep kernel

如果输出类似如下,包含kernel-ml-5.1.9-1.el7.elrepo.x86_64,则表示安装成功

kernel-ml-5.1.9-1.el7.elrepo.x86_64
kernel-3.10.0-957.21.2.el7.x86_64
kernel-3.10.0-862.11.6.el7.x86_64
abrt-addon-kerneloops-2.1.11-52.el7.centos.x86_64
kernel-tools-3.10.0-957.21.2.el7.x86_64
kernel-tools-libs-3.10.0-957.21.2.el7.x86_64

设置开机默认启动项

查询可选的内核:

# egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'

输出结果类似如下:

CentOS Linux (5.1.9-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.21.2.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-862.11.6.el7.x86_64) 7 (Core)

该列表从0开始索引,所以5.19内核索引为0,我们将该索引值设为启动项,并重启系统

# grub2-set-default 0
# reboot

重启完成后再执行uname -r检查下当前系统内核,如果输出如下则表示内核更新成功。

5.1.9-1.el7.elrepo.x86_64

可选:删除旧内核

PS:删除旧内核的目的是为了防止 yum 更新旧版内核之后覆盖了 grub 默认启动项。该操作可能会失败,请谨慎操作

查询可以删除的旧版内核,安装自动清除工具,并执行删除内核(该工具会至少保留1个旧版内核)

# rpm -q kernel
kernel-3.10.0-862.11.6.el7.x86_64
kernel-3.10.0-957.21.2.el7.x86_64
# yum install yum-utils
# package-cleanup --oldkernels --count=1

手工删除旧版内核(可完全清除所有没有使用的内核):

#  yum remove kernel-3.10.0-957.21.2.el7.x86_64 

开启BBR

1. 修改sysctl配置

# echo 'net.core.default_qdisc=fq' | tee -a /etc/sysctl.conf
# echo 'net.ipv4.tcp_congestion_control=bbr' |  tee -a /etc/sysctl.conf
# sysctl -p

以上变更,亦可以直接通过vim /etc/sysctl.conf命令打开配置文件,并手工追加以下两行内容:

net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr

然后输入:wq保存并退出,然后输入sysctl -p应用生效

2. 检查是否加载BBR

# lsmod | grep bbr

如果输出结果包含tcp_bbr,则表示开启成功

tcp_bbr 20480 3

Please indicate: 无趣的人生也产生有意思的事件 » CentOS 7 开启Google BBR

Hi, you must log in to comment !