yuanrongxi/razor

公平性问题

adcen0107 opened this issue · 7 comments

袁老师,您好!
我使用了Razor的GCC算法,多条流往同一个目的IP发包,尝试对这个目的IP所在的网络进行带宽限制,观察到这样的结果:1、当可用总带宽比较小时,比如2Mbit,2条流基本能够均分,3Mbit,3条流能够基本均分;2、若可用带宽加大,4Mbit,2条流不能均分(一个获得3Mbit左右,另一个获得几百Kbit),6Mbit,3条流不能均分(一个获得4Mbit左右,另2个都大致获得几百Kbit)。
所以,我观察的现象是,当总带宽较小时(每条流平均1M),多流均分似乎符合预期;当总带宽稍大时,多流不能均分,总是有一个特大流,其余流为小流,且流量基本相等。
想请教下袁老师,关于多流竞争带宽均分问题,Razor是不是存在这样的问题呢?

这个我个人没测试过多路大流并存的问题,GCC是按延迟和丢包来确定码率的。能描述下你的物理测试环境么?

image
Centos系统的两台机器分别模拟发送端和接收端,发送端是同一个宿主机上启了多个虚拟机,每个虚拟机独自发包,模拟多流。
带宽限制位于发送端宿主机的出口网线上,分别限制4Mb, 6Mb,同时,发送端启动多个发送程序,观察发送端的日志的显示的码率大小。

当时CPU占用如何?

机器的性能比较好,cpu最高5%,我怀疑是算法导致的。

可以测试下BBR看看

好的,后续我尝试下BBR多流竞争。

我测了2020.09版本,bbr与gcc在带宽限制下的均分都做得比较好,2M带宽限制2条流竞争,每条流基本各自分1M,码率抖动大概在10%;同时保持同样网络限制条件,又回测了老版本2018.05,老版本带宽均分和之前的测试结果差不多。看来当前版本带宽均分已经做得比较好了!