目录
对比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_pie
和cake
更适合需要严格延迟控制和缓冲区管理的环境。