How can I diagnose IIS by pushing the CPU to 100% utilization?

I have a web server with more than a few ASP.NET sites running on it. Each time, so often, I notice that IIS 100% pushes the server processor. Sites share application pools, for each version of .NET they work.

What I'm looking for is a way to determine which site he is using using some kind of tool. If this tool got into the code to show it, that would be nice too. If not, I'm glad I know which site is causing the problem.

I have already tried using ANTS. However, with ANTS, you need to know which site it is, and then run it and wait in this web application with a CPU error. Not perfect perfect.

Any experience / ideas?

+4
source share
4 answers

Use the task manager to get the PID of the process that the entire processor accepts, then use the answers to this question to match the PID of the website.

+2
source

Check out the IIS Debug Diagnostic Tool http://support.microsoft.com/kb/919790 ,

another approach, split each site into different application pools, and then watch the application pools in the task manager to see the memory usage.

+2
source

In addition to David's answer (correct), once you have identified WS, the VS2010 with teams has some fantastic performance analysis results in the Analysis menu. Using the tools there, you can limit your problems to certain lines of code in the shortest possible time.

It's stupid to just use the Performance Analysis Wizard - just point it to the project in question, let it run, run various actions on the site, and it will give you every indicator you need to find your problem (it even puts flame icons next to the code that uses CPU intensively , in the editor)

0
source

Low tech answer:
+ Use the task manager to determine the loaded workflow.
+ Use c: \ windows \ system32 \ issapp.vbs to identify the application pool name of the loaded process (alternatively, DebugDiag makes the same easier if you are familiar with this tool. There is a column header for the application pool name on the Process tab).
+ Create new application pools and share your applications between them until you can isolate the application, causing a problem in the application pool.

More technical answer:
+ Use the task manager to determine the loaded workflow. Grab the dump this workflow using DebugDiag or ADPlus -hang -p (part of the Debugging Tools for Windows, both free downloads from Microsoft)
+ DebugDiag can pre-analyze the freezing dump for you, and can just give you all the hints you need. Which is a mid-tech solution that often works. You will want to look at and right-click the abusive process. Select "Full user mode" Dump "or something like that. The created dump file in c: \ Program Files \ DebugDiag \ Logs \ Misc * .dmp and double-click it to see before analysis.
+ If DebugDiag does not give you enough hints, then WinDBG can tell you exactly what you need to know, although it is a secret and complex tool, even starting out is a much smaller wizard. (This is also a lot of fun. I highly recommend it if you are an administrator and have often asked such questions.)

0
source

All Articles