• BBR vs BBRplus vs BBR2 一般网络速度对比


    转自 https://roov.org/2020/03/bbr-bbrplus-bbr2/

    TCP BBR 相信大家都不陌生了,这是一套由 Google 所设计并发布的 TCP 拥塞控制算法。由于锐速迟迟没有提供对新内核的支持,再加上自 Linux 4.9内核开始默认支持 TCP BBR,它开始逐渐成为服务器单边加速的首选。而 BBRplus 则是 CSDN 网友 dog250 针对原版 BBR 进行修改而来的加强版。而 BBRv2 则是原版 BBR 的后续迭代版本,目前仍然处于测试阶段。

    不过面对种类繁多的 BBR 衍生版本,网络上却很少能够看到对他们的横向对比评测。现有的一些评价也往往都基于经验和主观印象,或是变量不可控的异地测试。于是 reizhi 决定抽空对 BBR BBRplus 和 BBR2 进行本地横向测试一探究竟。

    测试环境

    使用 VMware workstation 开启两台 Debian 虚拟机,其中 A 机为服务器,通过 Nginx 架设 Web 服务并放置 100mb 文件供下载测速;B 机为客户机,使用 wget 进行下载。两台虚拟机通过虚拟内部网络连通,且均位于 SSD 固态硬盘上。

    测试方法

    通过 tc 命令将 A 机网卡设置为延迟 150ms ± 15ms(随机波动),丢包8%用于模拟一般化的网络环境。安装不同 BBR 分支加速后,在 B 机通过 wget 下载 100MB 的测试文件若干次(≥5次),并取最快3次的平均速度。

    测试结果

    单位:KB/s

    我们直接来看测试结果,目前仍处于测试版本的 BBRv2 是本次测试中最慢的,速度与4.19内核默认的 cubic 算法几乎相同。而令人意外的是,BBRplus 虽然显著快于原版 BBR,却被5.5内核的 BBR 远远甩在身后。

    测试中让人非常意外的是,BBRplus 分支在启动下载后速度攀升非常迅速。但不知何种原因,在下载进行到50% ~ 60%左右时,速度会骤然回落。下图完整的记录了 BBRplus 4.14.129 的速度变化情况。

    BBRplus 4.14.129

    起初 reizhi 以为是测试误差或其他原因,但经过了重启,重装系统,重装内核,手动编译内核开启 BBRplus 等操作后均未改善。在同等测试环境下,BBR 5.5 的速度表现就要稳定得多。

    BBR 5.5.10

    虽然 BBR 5.5.10 起步加速和峰值速度都不如 BBRplus,但在下载全程中均保持了非常不错的速度,最终整体耗时远低于 BBRplus。这是否意味着 BBRplus 更适合于突发小流量而 BBR 则擅长大流量持续吞吐呢?

    附注

    在本次测试中同样也尝试了锐速及 Net-speeder,不过与 BBR2 类似的,他们的全程速度均只有2位数,在此便没有将结果包纳进来。

    BBR2 5.4.0-rc6

    以上是 BBR2 的速度情况,由于速度过慢未进行完整下载。

  • 相关阅读:
    两种代理模式(JDK和Cglib)实例
    打印1到最大的n位数
    二叉树的构建以及先中后序遍历
    二维数组的查找
    斐波那契递归和非递归俩种算法实例
    淘宝tairKV分布式
    OSI七层模型详解
    Spring事务配置的五种方式
    linux中cat、more、less、tail、head命令的区别
    跨域的理解与实现
  • 原文地址:https://www.cnblogs.com/z45281625/p/16312707.html
Copyright © 2020-2023  润新知