我们在生产中有一个 asp.net 应用程序,其中 w3wp.exe 占用 100% CPU(4 核 - 4 个线程,占 25%)并且 cpu 负载在我们回收应用程序池之前永远不会下降(应用程序在应用程序池中是单独的) . 我们的错误日志没有任何内容,没有发出异常(或者至少我们没有捕获它们)所以我们怀疑这是代码问题(无限循环/死锁)。只有在高负载(数千名用户)运行几个小时后才会出现问题。
有什么方法可以分析导致 CPU 负载的现有线程之一?在查看了 JetBrains 的 DotTrace Profiler 之后,似乎不可能因为 Profiling API 和 man 的限制,我们还没有在我们的测试环境中重现这个问题。该应用程序使用 SQL Server 2005、LINQ2SQL 和 System.Transactions API。
有什么建议可以找到问题吗?