测量从Windows客户端到Solaris服务器的TCP输出:
带有iperf 1.7.0的WXP SP3 – >平均返回90Mbit左右
相同的客户端,相同的服务器,但Windows iperf 2.0.5 – >返回平均8.5 Mbit
已经观察到类似的差异连接到其他服务器(W2008,W2003)
当同一个工具的不同版本提供了大不相同的结果时,很难得出一些结论。
示例如下:
C:\ temp> iperf -v(来自iperf.fr)
iperf版本2.0.5(2010年7月8日)pthreadsC:\ temp> iperf -c solaris10
客户端连接到solaris10,TCP端口5001
TCP窗口大小:64.0 KByte(默认)[3]本地10.172.181.159端口2124与10.172.180.209端口5001连接
[ID]间隔传输带宽
[3] 0.0-10.2秒10.6兆字节8.74兆比特/秒
糟糕的性能,但现在我testing从同一个主机(Windows XP SP3 32位和100Mbit)到同一个服务器(Solaris 10 / sparc 64bit和1Gbit运行iperf 2.0.5,默认窗口48k)与旧的 iperf
C:\ temp> 1iperf -v
iperf版本1.7.0(2003年3月13日)win32线程C:\ temp> 1iperf.exe -c solaris10 -w64k
客户端连接到solaris10,TCP端口5001
TCP窗口大小:64.0 KByte[1208]本地10.172.181.159端口2128与10.172.180.209端口5001连接
[ID]间隔传输带宽
0.0-10.0秒112兆字节94.0兆比特/秒
所以一个64k窗口的iperf表示8.75Mbit,而具有相同窗口大小的旧iperf表示94.0Mbit。 这些结果在重复testing中是不变的。
从我的testing启动与窗口大小“x”iperf(旧)与窗口大小“x”iperf(新),而不是产生相同或非常接近的结果产生完全不同的结果。 我看到的唯一区别是旧编译为win32线程与pthreads但并行(-P 10)似乎在两个工作。
任何人都有线索,或可以推荐一个工具,让我可以信任的结果?
编辑:从(旧)iperf看来,它将TCP窗口缩放标志设置为3在SYN数据包,当我运行(新)iperf这是在初始数据包中设置为0。 通过交换窗口大小的快速分析显示(旧)iperf来回,但大多在32K,而(新)iperf大多保持在64K。 也许这会帮助人们把点连接起来。
iperf的更高版本是使用不同的线程库(win32线程与pthread)。 只有这一点才能解释性能上的差异。
iperf的1.x和2.x之间可能有一些其他代码的区别。 这可能很简单,就像默认选项从1.x更改为2.x(如TCP_WINDOW_SIZE,…)。
确保两者都使用TCP(或udp),例如通过使用–udp选项重新运行。
您可以尝试iperf用户邮件列表存档,甚至发布您的问题。
这没有资格作为正确的答案,但是您是否尝试确保Solaris上的iperf版本与您在Windows上运行的iperf版本相匹配。 我一直无法使用Linux上的iperf 2.0.4和Windows上的2.0.5来重现此问题。 所以我怀疑你所看到的行为与你的Solaris机器上使用的版本不兼容最新的Windows版本。
我不相信@法赫德答案中的最后一句话是正确的! Solaris和Linux iPerf客户端肯定会按照协议分析器推送正确的带宽。 Windows iPerf 2.x没有得到正确的值,但是iPerf 1.07是; 因此,我不得不使用1.x版本来获得准确的结果。