开发者

w3wp.exe in ASP.NET production app is using 100% CPU. How to find the problem?

开发者 https://www.devze.com 2023-01-01 09:44 出处:网络
we have an asp.net app in production where w3wp.exe is taking 100% CPU ( 4 cores - 4 threads at 25% ) and cpu load never goes down until we recycle the application pool ( the app is alone in the appli

we have an asp.net app in production where w3wp.exe is taking 100% CPU ( 4 cores - 4 threads at 25% ) and cpu load never goes down until we recycle the application pool ( the app is alone in the application pool ). Our error log has nothing, there is no exceptions being emitted ( or at least we don't catch them ) so we suspect it's code problem ( infinite loop / deadlock ). The problem 开发者_如何学Pythononly arises after some hours running with high load ( several thousand users ).

There is any way to profile one of the EXISTING threads that is causing cpu load ? After taking a look to JetBrains's DotTrace Profiler seems like it's not possible for limitations of Profiling API and man, we haven't get to reproduce the problem in our testing environment. The app uses SQL Server 2005, LINQ2SQL and System.Transactions API.

Any suggestion to find the problem ?


Create a memory dump of the currently running application and then download WinDbg and SoS (Son of Strike) take a look at the memory profile of the running application to see what is consuming the most memory, where the performance issues are. If you have a .NET 4 application, you can load the memory dump in Visual Studio 2010 and get more of a visual look at what is consuming memory. You'll be able to see wha processes are currently running an be able to gauge these against CPU usage.

The dnr tv episode - Tess Ferrandez on Debugging in .NET is a good introduction on how to use WinDbg for debugging an ASP.NET application.

0

精彩评论

暂无评论...
验证码 换一张
取 消