How can you know what is w3wp.exe doing? (or how to diagnose a performance problem)

Solution 1:

You can also use the Worker Processes UI inside IIS Manager and inspect the requests that are currently executing and see where they are getting stuck if any. Open IIS Manager->Click the Server in the Tree->Double Click Worker Processes Icon->Double click the Worker Process that is consuming CPU to see the currently executing requests in real time so that you can see which module is taking time.

Also consider using Failed Request Tracing to track some of the time per request to see where they are taking long time.

Solution 2:

Ok, to start - the server is REALLY crappy. But it SHOULD be enough.

  • For virtualization, check your drivers. I know of no virutalization platform that hides the CPU (and I coubt someone puts up a hyper-v or esx on a celeron) but the drivers for disc etc. are an indication.

  • CPU should not be that high. Sadly, with this RAM, you are pretty much toast - if you start adding a profiler you pretty much will blow the memory you have.

I would:

  • Check the logs for stuff executing at this moment.
  • Upgrade the OS to 2008 R2 - a LOT more information is available there.

For testing:

  • In your dev environment make a copy of the site and run some performance tests.
  • Do profiling there.
  • Use Failed REquest Tracking to find out which requests fail.

http://learn.iis.net/page.aspx/266/troubleshooting-failed-requests-using-tracing-in-iis-7/

has some start there. This may give you a hint in case the problems are more - hm - "categorizable".

I would also keep longer term performance logs. Watch out for your IO (seconds / read, Seconds / write are pretty much the only relevant ones). All the rest is IO wise too vague - but once your IO starts taking longer than it should, the discs fall behind.

I would rule out a configuration issue at this point - at least as primary indicator. Something uses up your W3p ressources, now you need to find out what it is.

In general, this is not a server I would love having physical - it is so small, it makes no sense IMHO to havea machine there. Virtual would be better ;)