测量networking延迟

我想测量networking性能,特别是延迟。 我们正在对通过networking发送实时audio/video数据的系统进行压力testing。 当有多个同时连接(例如100个连接)时,我们观察到数据从一方发送到第二方花费的时间太长。 目前,我不知道是因为服务器性能还是networking问题。

服务器负载非常低(大约15%的cpu负载),但是由于线程上下文切换,服务器负载仍然可能是服务器问题,数据可能等待服务器开始处理。 我的设置如下:

客户端 – >负载平衡器 – >代理服务器 – >应用服务器 – >代理

我想测量在每两个元素之间发送数据需要多长时间(省略仅负载均衡器),例如在客户端和代理服务器之间。

服务器是Windows Server 2008 R2,客户端和代理是Windows XP / 7。

我想我可以在每台机器上安装wireshark,同步时钟并手动检查每台机器上捕获的数据包。 不过,我希望有更好的解决办法。

从Russinovich Psping做ICMP ping,TCP ping,带宽testing,等等。

http://technet.microsoft.com/en-us/sysinternals/jj729731.aspx

它有一个服务器组件和一个客户端组件,所以你必须在两台机器上运行它来进行更高级的testing。

Wireshark对于检查一个或两个出现症状的站点可能是有用的。 它具有出色的往返时间(RTT)graphicsfunction。 如果实际上丢失了数据包,则需要更多的数据包,则需要执行相关捕获 – 每边一个,并确定数据包可能发送但未收到的位置,或其他类似重新传输的数据。 你也想确定是否有很多的重传发生。

如果发送很多小的TCP数据包,则可能会遇到200毫秒的默认延迟确认。 如果症状是可重现的,则可能在数据包捕获中显示数据包与相应的ACK之间的间隔为200毫秒。

https://blogs.technet.com/b/nettracer/archive/2013/01/05/tcp-delayed-ack-combined-with-nagle-algorithm-can-badly-impact-communication-performance.aspx

如果你只是在testingnetworking,Wireshark似乎有点过分。 ping可以工作,最简单的方法是在testing过程中运行一系列的ping命令,然后分析结果,或者进一步写一个小程序按计划运行testing,然后将数据保存到CSV文件中。 您可以在networking上的任意两个节点之间运行此testing,以便testing其间的延迟。

如果你正在寻找程序的总延迟,那么你将需要不同的东西。

我不会相信wireshark和同步时钟来testing这个,因为你将会在同一个networking上的两个不同的主机之间寻找可能无法准确显示的毫秒差异。