解释 WPR 跟踪以尝试提高网络吞吐量

解释 WPR 跟踪以尝试提高网络吞吐量

在尝试分析第三方应用程序的吞吐量时,我们在两个系统上收集了 WPR 跟踪。其中一个系统赛门铁克入侵检测系统已启用,但另一个尚未启用。

对启用了入侵检测系统的系统进行以下观察

  • 许多NDIS.SYS函数ndisInterruptDpc调用需要> 100µs
    在 的时间段内10s:的片段超过1.966。Microsoft对DPC 的建议是17.273 took100µs
    运行时间不得超过 100 微秒

  • 提供商Microsoft-Windows-TCPIP显示所有内容都在使用TcpipSendSlowPath
    我尝试阅读有关慢速/快速路径的内容,但真的不知道该怎么做。我能找到的所有内容都是关于路由器或专用硬件的,我怀疑 ETW能否从它们那里获取任何数据(除非它在请求/响应中被传回?)

  • Stacks视图显示数据包正在通过Symantec 的数据包检查驱动程序。因此,IDSvia64.sys需要进行大量的内存分配和释放。Pool

  • psping带宽测试是因素 10慢点。

话虽如此,但两台服务器上第三方应用程序的感知性能是相当的。迄今为止唯一明显的区别是,在装有 IDS 的系统上,psping 测试要差得多。对我来说是个难题……

问题

  • 如何找到在 DPC 上花费太多时间的罪魁祸首?我怀疑 IDS 参与其中,但我无法将 DPC 的处理与 IDS(或其他任何东西)联系起来。
  • 我很想知道“慢速路径”实际上意味着什么、它可能对性能产生什么影响以及如何在可能/需要的情况下解决它。

编辑

按照@Brian 提供的链接,这是我们在启用 IDS 的系统上(绿色)和在没有 IDS 的系统上(蓝色)的 DPC 持续时间

  • 持续 10 秒
  • 执行已知需要花费一些时间的任务

我非常确信 IDS 是造成 DPC 持续时间较长的原因。如果有人能就问题的第二部分给出一些关于 数量的提示TcpipSendSlowPath,那么那里可能也值得调查一下。

DPC 持续时间

需要注意的是,具有 IDS 的系统上的 DPC 数量要大得多。

  • 最容易对此的解释是该系统当时已被其他人使用(很难找到活动最少的时段)
  • 我可以想象 NIC 的设置在这方面发挥了作用,但我不知道在哪里寻找它(取决于缓冲区大小、吞吐量……更多的 ISR 和 DPC 被触发)
  • 其他的 (?) ...

相关内容