性能测试WAN链路的方法

Modified on: Fri, 16 Aug 2019 04:00:02 +0800

我们在相距约200英里的位置之间有一对新的不同路由的1Gbps以太网链路。 “客户端”是一台功能相当强大的新机器(HP DL380 G6,双E56xx Xeon,48GB DDR3,R1对300GB 10krpm SAS磁盘,W2K8R2-x64),“服务器”也是一款不错的机器(HP BL460c G6) ,双E55xx Xeons,72GB,R1对146GB 10krpm SAS磁盘,双端口Emulex 4Gbps FC HBA连接到双Cisco MDS9509,然后连接到专用HP EVA 8400,配备128 x 450GB 15krpm FC磁盘,RHEL 5.3-x64)。

从客户端使用SFTP,我们只能看到使用大(> 2GB)文件的大约40Kbps的吞吐量。我们已经将服务器执行到“其他本地服务器”测试,并通过本地交换机(Cat 6509s)看到大约500Mbps,我们将在客户端进行同样的操作,但这是一天左右。

您将使用哪些其他测试方法向链接提供商证明问题是他们的?

作者:Chopper3

最佳答案

调整大象:
这可能需要调整,这可能不是pQd所说的问题。这种链接称为“Long,Fat Pipe”或elephant(请参阅RFC 1072)。因为这是一个超过距离的胖千兆位管道(在这种情况下距离实际上是时间/延迟),所以tcp接收窗口需要很大(参见TCP / IP图解说明第1卷,图片的TCP扩展部分)。

要弄清楚接收窗口需要什么,您需要计算带宽延迟乘积:

Bandwidth * Delay = Product

如果有10MS延迟,此计算器估计您需要一个大约1.2的接收窗口兆字节。我们可以使用上面的公式自己进行计算:

echo $(( (1000000.00/.01)/8  )) 
12500000

因此,您可能希望运行数据包转储以查看tcp窗口缩放(一旦你弄清楚大问题是什么,正在发生调整这个的TCP扩展允许更大的窗口。

Window Bound:
如果这是问题,那么你是没有缩放的窗口大小绑定,如果没有Window扩展,我会期望以下结果,并且无论管道大小如何,都有大约200ms的延迟:

Throughput = Recieve Window/Round Trip Time

所以:

echo $(( 65536/.2 ))
327680 #Bytes/second

为了获得您所看到的结果,您只需要解决延迟问题,即:

RTT = RWIN/Throughput

所以(对于40 kBytes / s):

echo $(( 65536.0/40000.0 )) 
1.63 #Seconds of Latency

(请检查我的数学,这些当然不包括所有协议/标头开销)

作者:,Kyle Brandt

相关问答

添加新评论