у нас проблемы с задержкой в одном из наших сетевых приложений.Большая часть запросов обрабатывается в течение 100 мс.Но иногда это может занять несколько секунд без видимой причины.
Поэтому я подключил некоторые инструменты мониторинга и посмотрел, что происходит (Wireshark для внешнего мониторинга сети через репликацию портов и Process Monitor, чтобы увидеть, чтопроисходило на локальной машине).
Мне удалось сопоставить tcp-пакеты, и они обычно находились в пределах миллисекунды друг от друга в обоих файлах журналов.Но в одном случае последний пакет серии был задержан более чем на 250 мс в Process Monitor по сравнению с wireshark (и наблюдалось ошибочное поведение приложения - из-за задержки).
Поскольку Wireshark был подключенна другом компьютере я вполне уверен, что то, что отслеживалось, было точным: все упакованное вовремя достигло сетевой карты.Что касается Process Monitor, я не совсем уверен, как он работает: когда регистрируются данные сети?Это когда доходит до сетевой карты?Когда это станет доступным для приложения?Когда приложение считывает данные?
В течение этих 250 мс было зарегистрировано несколько других событий, которые позволили мне поверить, что Process Monitor записывал правильно и что эта задержка в 250 мс не была "создана" им.
Буду весьма признателен за любую помощь, касающуюся поведения Process Monitor, текущего метода, который я использую для выявления проблемы, или того, что, по вашему мнению, может быть проблемой.