我们的网络应用程序中存在延迟问题。大多数时间请求都在100毫秒内处理。但有时候,由于没有明显的原因,它可能需要几秒钟。
所以我连接了一些监控工具并查看发生了什么(Wireshark通过端口复制和Process Monitor从外部监控网络,看看本地机器上发生了什么)。
我能够匹配tcp数据包,它们通常在两个日志文件中相互之间的毫秒内。但是在一次出现时,一系列的最后一个数据包在进程监视器中被延迟了250毫秒而不是wireshark(并且正在观察由于延迟引起的应用程序的不稳定行为)。
由于Wireshark连接到另一台计算机上,我非常确定所监控的内容是准确的:所有打包的都准时到达网卡。 对于Process Monitor,我不完全确定它是如何工作的:网络数据何时被注册?它何时到达网卡?什么时候应用程序可用?当应用程序读取数据时?
在这250ms期间,还有一些其他事件正在注册,让我相信Process Monitor正确录制,并且这250ms的延迟并非由它“创建”。
有关Process Monitor行为的任何帮助,我用来解决问题的当前方法或您认为可能存在的问题都将非常感激。