延迟较高,但 ping 显示延迟较低

延迟较高,但 ping 显示延迟较低

我们发现,访问同一子网内的远程资源的服务延迟约为 100-300 毫秒,但当我们使用 ping 时(ping 大小与正常发送的数据包大小相似),我们看到响应时间为 5 毫秒或更短。我们还应该检查什么?

摘自资源监视器

答案1

“延迟”是什么意思?
您是否在比较 ICMP 回显响应时间与应用程序处理往返时间?

如果你是,那就可以解释它了 - 同时也告诉你不要比较苹果和橘子:)

答案2

是否存在数据包丢失(从而导致重新传输)的情况,例如较大的数据包?

ping -s 1400 address也许可以在 Linux 或ping -l 1400 addressWindows 下尝试。

如果这没有帮助,请尝试使用wireshark- 也许存在一些奇怪的重新传输或损坏的数据包?

答案3

此类差异通常表明应用程序/服务器存在问题。虽然您的 ping 可能因 QoS/网络优先级而不同,但如果您谈论的是同一本地网络上的系统,那不是我首先要查看的地方。

从提供服务的同一台主机访问服务的延迟时间是多少?该主机是否能更快地提供其他服务?它的 I/O 负载是否很重?

答案4

正如您在此处所怀疑的,ping 延迟 != TCP 往返时间,尤其是在传输数据的情况下。所有这一切都可能是由于延迟的 ACK(可能造成 ~200ms,这是常见的默认设置)或 Nagle/和 DACK 之间的不良交互导致延迟增加到 ~500ms。这里需要进行数据包捕获。

还请注意,延迟确认计时器独立于 TCP 流,并在系统启动时实例化。因此它可以在流内 1-200 毫秒内随时触发,并且通常会导致您描述的“范围”式延迟。

相关内容