Pingtesting立即回复,但报告响应时间很长

我仍然试图证实我的假设:这个问题可能与托pipe在同一物理Hyper-V主机上的服务器隔离,但是至less我发现了频繁但间歇性的尝试从我的服务器ping一些服务器我的一些其他服务器,并得到奇怪的回应。 标准的Windows ping工具会立即(远远超过您期望的<1ms回复时间)报告全部四个回复,数字为数万ms。

运行ping -n 1000 fs1.nisgaa.net > ping-fs1.log约10-15秒完成。

 1. The first line: Reply from 10.3.0.17: bytes=32 time=85546ms TTL=128 2. The next ~450: Reply from 10.3.0.17: bytes=32 time=63979ms TTL=128 3. The next two: Reply from 10.3.0.17: bytes=32 time<1ms TTL=128 (these lines actually take a second to spit out, unlike the above, which appear instantly) 4. Next two: Reply from 10.3.0.17: bytes=32 time=85546ms TTL=128 5. Next two: Reply from 10.3.0.17: bytes=32 time<1ms TTL=128 6. Next one: Reply from 10.3.0.17: bytes=32 time=63980ms TTL=128 7. Next five: Reply from 10.3.0.17: bytes=32 time<1ms TTL=128 8. Next three: Reply from 10.3.0.17: bytes=32 time=91472ms TTL=128 9. Next ~75: Reply from 10.3.0.17: bytes=32 time=63980ms TTL=128 0. Next four: Reply from 10.3.0.17: bytes=32 time<1ms TTL=128 1. Next one: Reply from 10.3.0.17: bytes=32 time=85546ms TTL=128 2. Next one: Reply from 10.3.0.17: bytes=32 time<1ms TTL=128 3. Next one: Reply from 10.3.0.17: bytes=32 time=85546ms TTL=128 4. Next 15: Reply from 10.3.0.17: bytes=32 time=63980ms TTL=128 

依此类推,有大量的重复数据块需要花费几分钟时间,但是会立即报告,接下来是less量1ms的响应,正如我所期望的那样。

任何想法都可能导致这样的事情?

由于虚拟处理器不能连续运行,因此在虚拟机内测量时间可能非常困难。 如果时间计算被抛出,我不会感到惊讶。

如果他们真的被立即报告,那么64到85秒的测量显然是错误的。

我一直有完全相同的问题,并发现以下博客文章:

http://blogs.msdn.com/b/tvoellm/archive/2008/06/05/negative-ping-times-in-windows-vm-s-whats-up.aspx

只是一个快速的博客文章,可以帮助您解决一些客户看到在Hyper-V虚拟机下运行的问题。 这个问题是多处理器客户端上的负面ping时间。

如果您在多处理器W2k3客户操作系统中看到负面的ping时间,您可以考虑在boot.ini文件中设置/ usepmtimer。

根本问题来自Win32 QueryPerformanceCounter函数。 默认情况下,它使用称为TSC的时间源。 这是一个CPU时间来源,主要是计算CPU周期。 每个(虚拟)处理器的TSC可能不同,因此不能保证在一个处理器上读取TSC与读取另一个处理器上的TSC有任何关系。 这意味着不同副总裁的TSC背靠背读取可能会倒退。 Hyper-V保证TSC不会在单个VP上倒退。

所以这里负面的ping时间的问题是时间源使用的是使用TSC的QueryPerformanceCounter。 通过使用/ usepmtimer boot.ini标志,可以将QueryPerformanceCounter的时间源从TSC更改为全局时间源PM定时器。

这些症状还会影响依赖于QueryPerformanceCounter任何内容,如网点System.Diagnostics.StopWatch类。

更新 – 我们友好的IT人员根据说明更新了我们的虚拟机,并且已经解决了这个问题。