我使用 iperf 测量了两台 ubuntu 机器之间 TCP 连接的最大吞吐量。两台机器都通过 1Gbps 电缆直接连接。当我执行 iperf 测试时,我平均获得了 845 Mbps 的带宽。但是当我尝试反转方向(即,将服务器更改为客户端,反之亦然)时,结果下降到 185 Mbps。这些结果是十次读数的平均值,我能获得的最大值是 370Mbps。然后我决定为 rmem_max、wmem_max、tcp_rmem、tcp_wmem 等参数设置相同的值,但即使设置了相同的参数,我也得到了类似的结果。即(一个方向为 845Mbps,另一个方向为 185Mbps)。我不知道可能的原因是什么。我是否遗漏了什么重要的东西?
这些是两个系统上 netstat -in 的结果:
Ifac MTU Met RX-ok rx-err rx-drp rx-ovr tx-ok tx-err tx-drp tx-ovr flg
eth0 1500 0 14976 0 0 0 8546 0 0 0 BMRU
eth1 1500 0 8268 0 0 0 14646 0 0 0 BMRU
答案1
您是否分析了 wireshark 上的 pcap 文件?这看起来像是网络不对称的情况。分析 wireshark 上的 tcp 跟踪图并检查是否存在 tcp 拥塞。还可以通过 tcp.analysis.window_full 进行过滤以检查 TCP 窗口是否已满。