部署与布署应该怎么用

部署与布署应该怎么用,第1张

CentOS7上如何部署GoogleBBR TCP拥塞控制算法

传统的TCP拥塞控制算法是基于丢包反馈协议的。

基于“丢包反馈”的协议是一种被动的拥塞控制机制,根据网络中的丢包事件来判断网络拥塞。即使在网络负载较高的情况下,只要没有拥塞和丢包,协议也不会主动降低其发送速度。

该协议可以充分利用网络的剩余带宽,提高吞吐量。但由于丢包反馈协议在网络接近饱和时的激进性,一方面大大提高了网络的带宽利用率;另一方面,对于基于丢包反馈的拥塞控制协议来说,大幅度提高网络利用率意味着下一次拥塞丢包事件不远了,所以这些协议在提高网络带宽利用率的同时,也间接增加了网络的丢包率,造成整个网络的抖动加剧。

还有谁导致了丢包?

数据包丢失并不总是由拥塞引起的。数据包丢失有许多可能的原因,例如:

  • 世界最佳防火墙GWF的随机丢包策略
  • 网络中多径衰落引起的信号衰减
  • 由信道阻塞引起的数据包丢失和损坏的数据包被拒绝。
  • 有缺陷的网络硬件和网络驱动程序软件失败。
  • 信号的信噪比(SNR)
  • GoogleBBR的出现

    自然,我们不喜欢GWF,这是一种人为的随机丢包策略。当经过GWF时,数据丢失了。我们应该立即重新发送数据包,增加发送频率,而不是降低速度,也就是不希望传统的TCP拥塞算法来控制。

    因此出现了基于无丢包的拥塞控制算法CDG,它以时延作为判断依据。延迟增加表示拥塞,数据开始在路由器的缓冲区中累积。缩小发送窗口。然而,CDG算法与基于分组丢失的算法不兼容。只有全世界的设备都换成CDG,但这是不可能的。目前,市场上的设备不能同时切换到CDG,所以谷歌很不高兴。谷歌科学家开发了一种转换算法来解决这个问题。这个算法的名字叫BBR(瓶颈带宽和RTT),是一种全新的拥塞控制算法。BBR和CDG的想法一样,都是不用丢包作为拥塞控制信号,但是和CDG不同,BBR可以和立方、雷诺共存。

    ?使用BBR/ByGoogle前后网络吞吐量对比图

    BBR由Google开发,由Linux内核的TCP协议栈使用。借助BBR算法,Linux服务器可以显著提高吞吐量,降低连接延迟。简单地说,BBR可以加快网络传输速度。此外,部署BBR很容易,因为该算法只需要发送方的支持,而不需要网络或接收方的支持。

    CentOS7服务器实例上部署BBR

    下面我将与您分享我如何在CentOS7KVM服务器实例上部署BBR。

    步骤〇:前置条件
  • CentOS7x64服务器实例。
  • sudo用户
  • 步骤①:使用 ELRepoRPM 仓库升级内核

    要使用BBR,需要将CentOS7机器的内核升级到4.9.0。您可以通过使用ELRepoRPM的第三方仓库轻松实现这一点。

    在升级之前,您可以检查当前内核:

    uname-r

    该命令可能会输出如下所示的字符串:

    3.10.0-514.2.2.el7.x86_64

    如你所见,当前的内核是3.10.0,所以我们需要更新它。

    在更新内核之前,请安装ELRepo存储库:

    sudoRPM-importhttps://www.Elrepo.org/RPM-GPG-KEY-Elrepo.org sudoRPM-Uvhhttp://www.Elrepo.org/Elrepo-release-7.0-2.el7.Elrepo.noarch.RPM

    使用ELReporepo安装4.9.0内核:

    sudoyum-enablerepo=Elrepo-kernelinstallkernel-ml-y

    确认结果:

    rpm-qa|grep内核

    如果安装成功,您应该会看到类似下面的内容,并且在输出列表中会看到kernel-ml-4.18.5-1.el7.Elrepo.x86_64:

    kernel-ml-4.18.5-1.El7.Elrepo.x86_64 kernel-3.10.0-514.El7.x86_64 kernel-tools-3.10.0-514.2.2.2.El7.x86_64 kernel-tools-3.10.0-514.2.2.El7.x86_64

    现在,您需要通过将默认引导设置为grub2来启用4.18.5内核。

    显示grub2菜单中的所有条目:

    苏多·埃格雷普·^menuentry/etc/grub2.CFG|cut-f2-d\'

    结果应该是这样的:

    CentOSLinux7RescueA0CBF86a6ef1416a8812657bb4F2b860(4.18.5-1.Elrepo.x86_64) CentOSLinux(4.18.5-1.Elrepo.x86_64)7(核心) CentOSLinux(3.10.0-514.2.2.El7。

    由于行数从0开始,而4.18.5内核条目位于第一行,因此默认的引导条目应该设置为0:

    sudogruB2-set-default0

    重启系统:

    sudoshutdown-rnow /或reboot

    当服务器重新联机时,请再次登录并重新运行uname命令,以确认您使用的是正确的内核:

    uname-r

    您应该会看到以下结果:

    4.18.5-1.el7.Elrepo.x86_64 步骤②:启用BBR

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

    echo'net.core.default_qdisc=FQ'|sudotee-a/etc/sysctl.conf echo'net.IPv4.TCP_congestion_control=BBR'|sudotee-a/etc/sysctl.conf sudosysctl-p

    现在,您可以使用以下命令来确认BBR是否已启用:

    sudosysctlnet.IPv4.TCP_available_congestion_control

    在正常情况下,应该会输出类似如下的字符串:

    net.IPv4.TCP_available_congestion_control=BBRcubicReno

    接下来,继续验证:

    sudosysctl-nnet.IPv4.TCP_拥塞_控制

    输出应该类似于以下字符串:

    bbr

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

    lsmod|grepBBR

    输出应该类似于:

    TCP_BBR208410 步骤③(可选):测试网络性能是否增强

    要测试BBR的网络性能是否得到增强,您可以在Web服务器目录中创建一个文件以供下载,然后从桌面上的Web浏览器测试下载速度

    sudoyuminstallhttpd-y sudosystemCTLstarthttpd.service sudofirewall-cmd-zone=public-permanent-add-service=http sudofirewall-cmd-reload CD/var/www/html sudoDDif=/dev/zeroof=500MB.zipbs=1024kcount=500

    最后,http://[your-server-IP]/500MB.zip从台式电脑上的Web浏览器访问URL,然后评估下载速度。

    当然,如果服务器在国外,也可以直接在YouTube上打开一个4K画质的视频进行感官速度测试,如下图:

    ?使用BBR后的YouTube速度jandou

    这样,享受高速网络带来的全新体验。

    步骤④(可选):删除无用的旧内核

    升级内核后,旧内核仍然存在。执行以下命令将自动过滤并删除当前无用的系统内核版本。

    yumremove$(rpm-QA|grepkernel|grep-v$(uname-r))

    详情请参考文章:CentOS7删除无用旧内核。

    非专业技术人员福利

    如果您不是专业技术人员,您可以使用一键安装脚本并执行以下命令:

    https://github.com/teddysun/across/raw/master/bbr.sh&;amp;amp;&chmod+xBBR.sh&;&。/bbr.sh

    详情请参考文章:一键安装最新内核,打开BBR脚本。

    参考链接:

    Tcp拥塞控制来到GCP——你的互联网刚刚变得更快
    TCP拥塞控制算法的优缺点适用环境性能分析
    如何在centos7上部署GoogleBBR由Vultr
    TCP流量控制和拥塞控制机制
    GoogleTCPBBR浅识

    技术感谢

    尼尔·卡德韦尔,高级软件工程师;
    YuchungCheng,高级软件工程师;
    C.StephenGunn,高级参谋可靠性工程师;
    SoheilHassasYeganeh,高级软件工程师;
    范·雅各布森,研究科学家;
    AminVahdat,谷歌研究员。

    坚持原创技术分享,您的支持将鼓励我继续

    欢迎分享,转载请注明来源:内存溢出

    原文地址: http://outofmemory.cn/zz/744453.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-04-29
    下一篇 2022-04-29

    发表评论

    登录后才能评论

    评论列表(0条)

    保存