【发布时间】:2026-01-16 04:40:01
【问题描述】:
我需要诊断无法达到最佳性能的服务器。 CPU 使用率在大约 500 毫秒内降至零,然后在尝试处理排队的请求时飙升至 100%,这种模式在数小时内重复,之后操作再次变得平稳(多年来一直平稳)
这表明工作线程在等待外部事件发生时处于空闲状态。该应用程序很复杂,我们无法查明罪魁祸首。
是否可以将 Process Monitor 配置为在每次线程休眠等待某个事件时记录? 如果可能,该事件能否与特定的堆栈跟踪相关?
如果上述情况可行,也许我可以将 CPU 下降与等待事件相关联并找出罪魁祸首。
我之前曾成功使用 Windbg 诊断过这类问题,但在这种情况下,等待时间很短,我不确定能否在处理器空闲时让调试器完全中断。
【问题讨论】:
-
使用 ETW 进行诊断:channel9.msdn.com/Shows/Defrag-Tools/…
-
哇,这完全是适合这项工作的工具。如果您这样发布,很乐意为您的答案投票。干杯!
-
好的,在这种情况下,我已经发布了一个答案,以便you can accept my reply as answer“关闭”问题。