W3WP.exe - CPU spikes to 100% then falls to 0% resulting in poor performance
I have an existing asp.net app that worked for months without issues.
The problem
Suddenly, (after a new code release) once every day or two, the CPU starts to go from 100% utilization to 0%, and back and forth, every few seconds.
While this is happening, aspnet requests are being queued up, execution time and wait time increases drastically.
Restart of WWW Publishing Service “solves” the issue (for a day or so). Pre-emptive restart of the service also helps.
My guess at the cause
Since this started after a new release, I blame the new code but I am looking for clues what it could be. My best guess would be memory leak but memory usage of w3wp.exe never goes over 6.5GB and there is spare physical memory, and I do store a lot of stuff in the session.
Can anyone offer a clue?
Debugging IIS is a daunting task and one I have lit开发者_如何学运维tle experience with so I am hoping someone else had a similar issue and can provide a clue.
Some more notes/clues When restarting WWW service at the time of this issue, the stopping of the service takes a long time. A good two minutes.
w3wp.exe is part of IIS, but doesn't actually do much work. The 100% CPU utilization is from the code that is running inside of that process. That's your code.
If you have free memory, then any memory leak doesn't matter. Ignore memory leaks for now.
Can you reproduce this problem on a Development machine? If so, then you need to profile the application while it's running so you can find out where the application is spending its time.
精彩评论