alibaba-edu / High-Precision-Congestion-Control

296 stars 153 forks source link

About calculation formula for throughput #50

Open Jiawei1996 opened 11 months ago

Jiawei1996 commented 11 months ago

为了观察DCQCN算法的性能,我在simulation目录下执行了以下命令: python run.py --topo topology --trace flow --bw 25 --cc dcqcn --enable_trace 1

其中topology.txt的内容为: 7 1 6 0 0 1 100Gbps 0.001ms 0 0 2 100Gbps 0.001ms 0 0 3 100Gbps 0.001ms 0 0 4 100Gbps 0.001ms 0 0 5 100Gbps 0.001ms 0 0 6 100Gbps 0.001ms 0

flow.txt的内容为: 5 2 1 3 100 200000000 2 3 1 3 100 200000000 2 4 1 3 100 150000000 2 5 1 3 100 5000000 2 6 1 3 100 5000000 2

仿真结束后在mix目录下生成了mix_topology_flow_dcqcn.tr,之后使用trace_reader对该trace文件进行了解析。

为了知道不同flow的吞吐量,我采用的计算方式是:针对某一条flow,使用该flow对应的sender收到的相邻ACK报文的size差除以时间差。例如针对sender#3而言,以下片段展示了sender#3上收到的相邻ACK报文示例: ... 2052481446 n:3 1:0 0 Recv ecn:0 0b000101 0b000301 100 10000 A 0x00 3 178993000 0 60 ... 2052481697 n:3 1:0 0 Recv ecn:0 0b000101 0b000301 100 10000 A 0x00 3 178994000 0 60 ... 那么这一段时间的吞吐量为 (178994000B - 178993000B) * 8 / (2052481697ns - 2052481446ns) = 31.87Gbps【问题1】为什么这种方法算出的吞吐量会比仿真命令中设置的网卡带宽(25Gbps)还大?

按照以上方式计算所有5条flow的吞吐量,如下所示: test 【问题2】为什么吞吐量的变化情况不符合“先线速,然后迅速降低并趋于公平“的趋势? 【问题3】论文中的吞吐量计算公式是什么呢?

Jiawei1996 commented 11 months ago

【问题1】为什么这种方法算出的吞吐量会比仿真命令中设置的网卡带宽(25Gbps)还大? run.py中的选项--bw表示的不是网卡的带宽。若想自定义网卡的带宽,需要修改topology.txt文件中与网卡所在结点相关联的链路速率。

Jiawei1996 commented 10 months ago

image

一周前收到了一封回复通知邮件,不知道为什么没有在这个Issue中看到他的回复 😒 我会试一下图中的方法,感觉应该按照这种方式计算 :)

william-learn commented 3 months ago

image

一周前收到了一封回复通知邮件,不知道为什么没有在这个Issue中看到他的回复 😒 我会试一下图中的方法,感觉应该按照这种方式计算 :)

可以看一下你关于计算吞吐量的代码吗?谢谢这是我的邮箱 jiaguangge@163.com