我使用 iperf3.7 来测量最大 4 Gbps 左右的系统的吞吐量。
iperf3 服务器在 Linux 机器上运行。我使用以下标志在客户端使用此命令启动流量,-R 选项让服务器发送到客户端: iperf3 -c 32.0.161.84 -u -l 1360 -b 550M -P 8 -w 16M -R -t 3000
大多数时候一切都按预期工作,我收到大约 4 Gbps。但在某些情况下,比如 10 次迭代的 1-2 次,我收到的吞吐量低于预期。低多少似乎是随机的,可能是 2 Gbps 或 3 或 3.5。当我遇到低吞吐量场景时,它通常会保持低电平几分钟。有时,几分钟后它可以自行恢复到最大速度,有时它会保持较低的时间更长。当我得到这个低吞吐量场景时,如果停止流量并重新启动,我可以获得一个很好的吞吐量场景,在这种情况下,客户端已经收到一个新的 IP 地址,因为它在每次迭代时动态分配给客户端。
查看发送服务器端的打印输出,它说它正在发送 8x550M,我还检查了 ifstat,它也显示它发送 4400 Mbps。
仍然接收方接收较低的速度。
将运行 iperf 客户端(发送方)的机器的以太网卡镜像到 Wireshark 中显示,不时有 10.8 毫秒的静默间隙,这可以解释接收到的较低速率。
在这个使用 wireshark 的例子中,流量是 4.4 Gbps,然后突然之间,似乎是 10.8 毫秒的静默间隙,我们丢失了 4486 个 1360 字节的 ip 帧。这可以解释为什么流量会在一段时间内下降到 3 Gbps。
有谁知道为什么会发生这种情况以及它是否是可能在更高版本 3.8 或 3.9 中修复的已知问题?任何其他标志都可能有助于避免这种情况?我试图在另一台 Linux 机器上运行服务器,但出现了同样的问题,所以我认为这不是机器本身的问题。
BR尼克拉斯