我正在尝试通过 Linux 机器之间的“高延迟网络”提高我的 TCP 吞吐量。
我将tcp_mem
,tcp_wmem
和设置tcp_rmem
为“8192 7061504 7061504”。
我设置rmem_max
,wmem_max
,rmem_default
并wmem_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 是错误的吗?
(我尝试在窗口配置中使用更大的数字,但似乎没有效果)
网站
http://www.psc.edu/networking/projects/tcptune/
提到现在 Linux 自动调整 TCP 设置,弄乱这些值可能不会改善情况。
话虽这么说,也许 100 毫秒加上大带宽(至少 790 mbps)可能会导致巨大的 BDP,因此自动调整可能会判断出某些问题并且做得还不够。
归档时间: |
|
查看次数: |
9905 次 |
最近记录: |