【发布时间】:2011-04-15 23:50:51
【问题描述】:
我们的一个网络应用程序存在延迟问题。大多数时间请求都在 100 毫秒内得到处理。但有时它可能会无缘无故地花费几秒钟。
所以我连接了一些监控工具并查看了发生了什么(Wireshark 通过端口复制从外部监控网络,进程监视器查看本地计算机上发生了什么)。
我能够匹配 tcp 数据包,它们通常在两个日志文件中彼此相距一毫秒。但有一次,与 Wireshark 相比,Process Monitor 中一系列的最后一个数据包延迟了 250 毫秒以上(并且正在观察应用程序的不稳定行为 - 由于延迟)。
由于 Wireshark 连接到另一台计算机上,我很确定所监控的内容是准确的:所有打包的文件都按时到达了网卡。 至于进程监视器,我不完全确定它是如何工作的:网络数据何时注册?是到达网卡的时候吗?它何时可供应用程序使用?应用程序何时读取数据?
在这 250 毫秒期间,还注册了一些其他事件,这让我相信 Process Monitor 正在正确记录,并且这 250 毫秒的延迟不是由它“创建”的。
对于 Process Monitor 的行为、我用来挖掘问题的当前方法或您认为可能是问题的任何帮助,我们将不胜感激。
【问题讨论】:
标签: debugging networking logging tcp wireshark