views:

555

answers:

2

We have a Windows Server 2003 web server, and on that server runs about 5-6 top level Sharepoint sites, with a different application pool for each one.

There is one W3WP process that keeps pegging 100% for most of the day (happened yesterday and today) and it's connected (found by doing "Cscript iisapp.vbs" at the command line and matching ProcessID) to a particular Sharepoint site...which is nearly unusable.

What kind of corrective action can I take? These are the following ideas I had

1) Stopping and restarting the Web Site in IIS - For some reason this didn't stop the offending W3WP process??? Any ideas why not?

2) Stopping and restarting the associated Application Pool.

3) Recycling the associated Application Pool.

Any of those sound like the right idea? If not what are some good things to try? I can't do an iisreset since I don't want to alter service to the other, much more heavily used, Sharepoint sites.

If I truly NEED to do some diagnostic work please point me in the right direction. I'm not the Sharepoint admin guy (he's out of town so I'm filling in even though I'm just a developer) but I'll do my best.

If you need any information just let me know and I'll look it up (slowly though, as that one process is pegging the entire machine).

+2  A: 

It's not an IISReset that you need. You have a piece of code that is running amok with your memory. Most likely it's not actually a CPU problem but a paging problem. I've encountered this a few times with data structures in memory that grow too large to page in/out effectively and eventually the attempt to page data just begins consuming everything. The steps I would recommend are:

1) Go get the IIS Debug Diagnostics tools. And learn how to use them.

2) If possible, remove the session state from InProc to a state server or a sql server (since this requires serialization of all classes that go into session this may not be possible). This will help alleviate some process related memory issues.

3) Go to your application pool and adjust the number of worker processes upward. Remove Rapid fail protection (this will allow the site to continue serving pages even if rapid catastrophic errors occur).

The IIS debug diagnostics will record a LOT of data, but you can specify specific "catch" alerts that will detect hangs, excessive cpu usage etc. It will capture gigs of data, so be ready for a long wait when attempting to view the logs.

Joel Etherton
thanks for the tips
Albert
+1  A: 

Turns out someone tried to install some features that went haywire.

So he wrote a stsadm script to uninstall those features

Processor was still pegging.

I restarted the IIS Application Pool for that IIS process, didn't fix it.

So then I restarted IIS for that site and that resolved the processor issue.

Albert