如何在CentOS 7上部署Google BBR【搬运、机翻】
如何在CentOS 7上部署Google BBR
本文章搬运自 https://www.vultr.com/docs/how-to-deploy-google-bbr-on-centos-7
【注:文章当时使用的内核版本是4.9.0 而目前是4.15.6(4.15版本高于4.9)】
步骤 1: 使用 Elrepo RPM 存储库升级内核
为了使用 BBR, 您需要将 CentOS 7 机器的内核升级到4.9.0以上。 您可以使用 Elrepo RPM 存储库轻松地完成该操作。
在升级之前, 您可以查看当前内核:
uname -r
此命令应输出字符串, 类似于:
3.10.-514.2. . El7 x86_64
如您所见, 当前内核是3.10.0。
安装 ELRepo repo:
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
使用 ELRepo repo安装4.9.0 内核:【当前安装的是4.15.6】
sudo yum --enablerepo=elrepo-kernel install kernel-ml -y
确认结果:
rpm -qa | grep kernel
如果安装成功, 您应该在输出列表中看到kernel-ml-4.9.0-1.el7.elrepo.x86_64
kernel-ml-4.9.-.el7.elrepo.x86_64
kernel-3.10.-.el7.x86_64
kernel-tools-libs-3.10.-514.2..el7.x86_64
kernel-tools-3.10.-514.2..el7.x86_64
kernel-3.10.-514.2..el7.x86_64
【没有看到没有关系】
现在, 您需要通过设置默认的 GRUB2 启动项来启用4.9.0 内核。
显示 Grub2 菜单中的所有条目:
sudo egrep ^menuentry /etc/grub2.cfg | cut -f -d \'
结果应类似于:
CentOS Linux Rescue a0cbf86a6ef1416a8812657bb4f2b860 (4.9.-.el7.elrepo.x86_64)
CentOS Linux (4.9.-.el7.elrepo.x86_64) (Core)
CentOS Linux (3.10.-514.2..el7.x86_64) (Core)
CentOS Linux (3.10.-.el7.x86_64) (Core)
CentOS Linux (-rescue-bf94f46c6bd04792a6a42c91bae645f7) (Core)
由于行计数从0开始, 并且4.9.0 内核项位于第二行上, 因此将默认启动项设置为 1:
sudo grub2-set-default
注:我得到的结果与示例不同,如下
CentOS Linux (4.15.6-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux 7 Rescue 186e68c8657e4bfc8df5044d08b50231 (3.10.0-693.17.1.el7.x86_64)
CentOS Linux (3.10.0-693.17.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-693.11.6.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-c73a5ccf3b8145c3a675b64c4c3ab1d4) 7 (Core)
此时的CentOS Linux (4.15.6-1.el7.elrepo.x86_64) 7 (Core)位于第一条 所以我输入的应该是
sudo grub2-set-default
重新启动系统:
sudo shutdown -r now
当服务器重新联机时, 重新登录并重新运行 uname 命令以确认您使用的是正确的内核:
uname -r
您应该看到如下结果:
4.9.-.el7.elrepo.x86_64
(现在应该是)
4.15.-.el7.elrepo.x86_64
步骤 2: 启用 BBR
为了启用 BBR 算法, 您需要修改 Sysctl 配置, 如下所示:
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
sudo sysctl -p
现在, 您可以使用以下命令来确认启用了 BBR:
sudo sysctl net.ipv4.tcp_available_congestion_control
输出应类似于:
net.ipv4.tcp_available_congestion_control = bbr cubic reno
下一步, 验证:
sudo sysctl -n net.ipv4.tcp_congestion_control
输出应为:
bbr
最后, 检查内核模块是否已加载:
lsmod | grep bbr
输出将类似于:
tcp_bbr
步骤 3 (可选): 测试网络性能增强
为了测试 BBR 的网络性能增强, 您可以在 Web 服务器目录中创建一个文件以供下载, 然后, 从台式计算机上的 Web 浏览器测试下载速度。
sudo yum install httpd -y
sudo systemctl start httpd.service
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload
cd /var/www/html
sudo dd if=/dev/zero of=500mb.zip bs=1024k count=
最后, 从桌面计算机上的 Web 浏览器访问 URL http://[your-server-IP]/500mb.zip , 然后评估执行下载速度。
以上。 谢谢你的阅读。
如何在CentOS 7上部署Google BBR【搬运、机翻】的更多相关文章
- Linux - 在 CentOS 7 上部署 Google BBR
BBR(Bottleneck Bandwidth and RTT)是一种新的拥塞控制算法,由Google开发.有了BBR,Linux服务器可以显着提高吞吐量并减少连接延迟. Step 1: Upgra ...
- 如何在Linux服务器上部署禅道
最近换了新的项目团队,由于新团队比较年轻化,没有实行正规的项目管理,于是我自告奋勇要为团队管理出一份力,帮助团队建立敏捷化的项目管理,经过多方考究和对比后,选择了目前较受欢迎的开源项目管理软件:禅道. ...
- 如何在 CentOS 7 上安装 Nginx
本文首发:开发指南:如何在 CentOS 7 上安装 Nginx Nginx 读作 engine x, 是一个免费的.开源的.高性能的 HTTP 和反向代理服务,主要负责负载一些访问量比较大的站点. ...
- 如何在CentOS 7上修改主机名
如何在CentOS 7上修改主机名 在CentOS中,有三种定义的主机名:静态的(static),瞬态的(transient),和灵活的(pretty).“静态”主机名也称为内核主机名,是系统在启动时 ...
- 在CentOS 7上部署Ghost博客
作者:waringid 一.简介 跟静态博客不同的是,Ghost 这种轻量级的动态博客,有一个管理后台,可以直接写作和管理博客.本质上,跟 WordPress 是相通的,只是 Ghost 搭建在 No ...
- 如何在 CentOS 7 上生成 SSL 证书为 Nginx 加密
本文首发:开发指南:如何在 CentOS 7 上安装 Nginx Let’s Encrypt 是由 Internet Security Research Group (ISRG) 开发的一个自由.自动 ...
- 如何在CentOS 7上安装newman
前提:先安装nodejs,详见:如何在CentOS 7上安装Node.js和npm #sudo npm install -g newman 结果: /usr/local/bin/newman -> ...
- 在CentOS 8 上 部署 .Net Core 应用程序
在Centos 8 上 部署 .Net Core 应用程序 -- 记录篇 1.更新dnf 源 1 dnf update 2.安装 Asp.Net Core 运行时 1 dnf install ...
- CentOS 7 上部署Mono 4 和Jexus 5.6
概述 在这篇文章中我们将讨论如何在CentOS 7操作系统,安装 jexus. mono 和 配置 jexus,因此它将能够在这种环境中运行一个asp.net mvc 4 应用.这篇文章是描述如何在 ...
随机推荐
- J.U.C atomic AtomicInteger解析
很多情况下我们只是需要简单的,高效,线程安全的递增递减方法.注意,这里有三个条件:简单,意味着程序员尽可能少的底层或者实现起来比较简单:高效,意味着耗用资源要少,程序处理速度要快: 线程安全也非常重要 ...
- Django之modelform组件
一.简介与基本使用 简介:django中的modelform组件同时具有model和form作用,但是耦合度比较高,当项目需要拆分时候就比较困难了,所以在使用modelform时候需要先考虑项目的扩展 ...
- js_3_for_if_try
在js中有哪些特殊变量? null 指向一个空地址,一个特殊的地址 var u 定义了一个特殊变量u,类型未定义,boolean(u)=false js中的for循环是什么样子? 对列表: for(v ...
- 关于支付时rsa加密解密的函数
<?php //加密 function _checkPadding($padding, $type) { if ($type == 'en') { switch ($padding) { cas ...
- css 对图片颜色的处理
很久很久以前,在一个项目中,经理要求对一个图片做模糊处理.第一反应是这个要找 ui 给个模糊图片.可当时 ui 不在呀,项目又着急,只能自己搞.我一个前端,ps 技术实在不咋的,叫我切切图还可以,叫我 ...
- jspf与jsp的区别
如果想把一个jspf的文件引入(incurred)到一个jsp页面中,只能使用"@include"指令引入 如果使用<jsp:include>引入,jspf文件中的内容 ...
- Struts2如何搭建?
如何搭建Struts2: 1.导入jar包 commons-fileupload-1.3.jar commons-io-2.0.1.jar commons-lang3-3.1.jar freema ...
- DELL服务器硬件信息采集SHELL脚本
DELL服务器硬件信息采集SHELL脚本最近需要做资产列表,要采集DELL服务器的硬件信息,包括如下信息:1.操作系统信息(类型,版本,内核,平台,主机名)2.主板信息(厂商,机型,序列号)3.CPU ...
- cdh版本的hive安装以及配置
hive依赖hadoop 需要的软件包:hive-0.13.1-cdh5.3.6.tar.gz .hadoop-2.5.0-cdh5.3.6.tar.gz 1.hadoop的安装步骤请访问: http ...
- 将常用的Android adb shell 命令行封装为C#静态函数
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 简介:adb命令是常用的Android命令行,自动化.代码调试.手工排查问题都会用的到,这里将常用的一些命令行封装 ...