前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CentOS7 手动部署 BBR

CentOS7 手动部署 BBR

作者头像
cnguu
发布2020-10-23 16:03:18
1.1K0
发布2020-10-23 16:03:18
举报
文章被收录于专栏:凉风有信

# BBR 是什么?

BBR(Bottleneck Bandwidth and RTT),全新的 拥塞控制算法,由 Google 开发,供 Linux 内核的 TCP 协议栈使用

# 部署

# 升级内核

查看当前内核

代码语言:javascript
复制
$ uname -r

1

输出类似于以下字符串

代码语言:javascript
复制
3.10.0-514.2.2.el7.x86_64

1

当前内核为3.10.0,因此需要更新内核

更新内核之前,先安装 ELRepo 仓库

代码语言:javascript
复制
$ 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

1 2

安装内核

代码语言:javascript
复制
$ yum --enablerepo=elrepo-kernel install kernel-ml -y

1

确认结果

代码语言:javascript
复制
$ rpm -qa | grep kernel

1

如果安装成功,应该输出类似以下,且 kernel-ml-4.18.5-1.el7.elrepo.x86_64 在输出列表中看到

代码语言:javascript
复制
kernel-ml-4.18.5-1.el7.elrepo.x86_64
kernel-3.10.0-514.el7.x86_64
kernel-tools-libs-3.10.0-514.2.2.el7.x86_64
kernel-tools-3.10.0-514.2.2.el7.x86_64
kernel-3.10.0-514.2.2.el7.x86_64

1 2 3 4 5

通过设置默认引导为 grub2,来启用 4.18.5 内核

显示 grub2 菜单中的所有条目

代码语言:javascript
复制
$ egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'

1

结果输出类似于

代码语言:javascript
复制
CentOS Linux 7 Rescue a0cbf86a6ef1416a8812657bb4f2b860 (4.18.5-1.el7.elrepo.x86_64)
CentOS Linux (4.18.5-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.2.2.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-bf94f46c6bd04792a6a42c91bae645f7) 7 (Core)

1 2 3 4 5

由于行计数开始于 0,且 4.18.5 内核条目位于第一行,因此将默认引导条目应设置为 0

代码语言:javascript
复制
$ grub2-set-default 0

1

重启系统

代码语言:javascript
复制
$ shutdown -r now

1

重启后,确认使用的是正确的内核

代码语言:javascript
复制
$ uname -r

1

看到如下结果

代码语言:javascript
复制
4.18.5-1.el7.elrepo.x86_64

1

删除无用的旧内核

代码语言:javascript
复制
yum remove $(rpm -qa | grep kernel | grep -v $(uname -r))

1

# 启用 BBR

要启用 BBR 算法,需要修改 sysctl 配置,如下所示

代码语言:javascript
复制
$ echo 'net.core.default_qdisc=fq' | sudo tee -a /etc/sysctl.conf
$ echo 'net.ipv4.tcp_congestion_control=bbr' | sudo tee -a /etc/sysctl.conf
$ sysctl -p

1 2 3

确认是否已经启用了 BBR

代码语言:javascript
复制
$ sysctl net.ipv4.tcp_available_congestion_control

1

正常情况下应输出类似以下的字符串

代码语言:javascript
复制
net.ipv4.tcp_available_congestion_control = bbr cubic reno

1

接下来,继续验证

代码语言:javascript
复制
$ sysctl -n net.ipv4.tcp_congestion_control

1

应该输出类似以下字符串

代码语言:javascript
复制
bbr

1

最后,检查内核模块是否已加载

代码语言:javascript
复制
$ lsmod | grep bbr

1

应该输出类似于

代码语言:javascript
复制
tcp_bbr     20841  0

1

# 最后

就这样,尽情享受高速网络带来的新体验!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/3/7,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # BBR 是什么?
  • # 部署
    • # 升级内核
      • # 启用 BBR
      • # 最后
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档