对比3种常见的 配合tcp bbr 的qdisc 算法

fq(Fair Queueing)、fq_pie(Flow Queue Proportional Integral controller Enhanced)和 cake(Common Applications Kept Enhanced)是三种不同的队列规则(qdisc),它们在流量管理和拥堵控制方面有不同的特点和应用场景。

 

如果你想查看linux 当前支持的qdisc 算法,可以用命令:【其中sch 开头的就是】

ls /lib/modules/$(uname -r)/kernel/net/sched/ -l 

fq(Fair Queueing)

  • 设计目标fq 旨在通过公平地分配带宽来提高网络性能。它将流量分成多个队列,并确保每个队列都能公平地获得带宽。

  • 优点

    • 公平性fq 确保每个流量都能公平地获得带宽,避免某些流量占用过多资源。

    • 低延迟:通过公平分配带宽,fq 可以减少延迟,特别是在高流量环境中。

    • 简单性fq 的实现相对简单,适用于多种网络环境。

fq_pie(Flow Queue Proportional Integral controller Enhanced)

  • 设计目标fq_pie 结合了流量队列和 PIE(Proportional Integral controller Enhanced)算法,旨在解决缓冲区膨胀(Bufferbloat)问题,并确保公平性。

  • 优点

    • 缓冲区管理fq_pie 使用 PIE 算法来管理缓冲区,减少延迟和丢包率。

    • 公平性fq_pie 通过将流量分成多个队列,并对每个队列应用 PIE 算法,确保每个流量都能公平地获得带宽。

    • 适应性fq_pie 能够在不同的网络条件下表现良好,特别是在需要严格延迟控制的环境中。

cake(Common Applications Kept Enhanced)

  • 设计目标cake 由 OpenWrt 社区开发,主要用于家庭和小型办公室网络,旨在简化 QoS(Quality of Service)配置并优化网络性能。

  • 优点

    • 易于配置cake 提供了简化的 QoS 配置,适合非专业用户。

    • 公平性cake 通过先进的队列管理算法,确保不同流量之间的公平性。

    • 低延迟cake 通过智能队列管理和流量整形,减少了缓冲区膨胀(Bufferbloat)。

选择哪个更好?

  • 应用场景:如果你需要一个简单且有效的队列规则来确保带宽公平分配,fq 是一个不错的选择。如果你需要解决缓冲区膨胀问题,并且需要严格的延迟控制,fq_pie 可能更适合。如果你主要关注家庭或小型办公室网络的公平性和易用性,cake 可能是最佳选择。

  • 网络条件fq 适用于一般的网络环境,而 fq_piecake 更适合需要严格延迟控制和缓冲区管理的环境。

分类: 默认 标签: fq fq_pie cake QoS Bufferbloat 发布于: 2024-11-08 16:26:30, 点击数: