通过“高延迟网络”获得更好的 TCP 性能

9 linux performance tcp

我正在尝试通过 Linux 机器之间的“高延迟网络”提高我的 TCP 吞吐量。

我将tcp_mem,tcp_wmem和设置tcp_rmem为“8192 7061504 7061504”。
我设置rmem_maxwmem_maxrmem_defaultwmem_default为“7061504”。
我将netdev_max_backlog和设置txqueuelen为 10000。
我设置tcp_congestion_control为“可扩展”。

我正在使用“nist”(cnistnet)来模拟 100ms 的延迟,我达到的 BW 大约为 200mbps(没有延迟我达到大约 790mbps)。

我使用 iperf 来执行测试和 TCPTrace 来分析结果,这是我得到的:

在接收方:
max win adv: 5294720 bytes
avg win adv: 5273959 bytes
sack pkts sent: 0

在发送方:
实际数据字节:3085179704
rexmt 数据字节:9018144
最大owin :5294577 字节
平均 owin:3317125 字节
RTT 最小值:19.2 毫秒
RTT 最大值:218.2 毫秒
RTT 平均 0 毫秒:9

为什么我只能达到 200mbps?我怀疑“owin”与它有关,但我不确定(这些结果是 2 分钟的测试。1 分钟的测试的“平均 owin”为 1552900)……

即使延迟是 100 毫秒,我期望吞吐量接近 790 mbps 是错误的吗?

(我尝试在窗口配置中使用更大的数字,但似乎没有效果)

jan*_*neb 2

网站

http://www.psc.edu/networking/projects/tcptune/

提到现在 Linux 自动调整 TCP 设置,弄乱这些值可能不会改善情况。

话虽这么说,也许 100 毫秒加上大带宽(至少 790 mbps)可能会导致巨大的 BDP,因此自动调整可能会判断出某些问题并且做得还不够。