We have a .Net 2.0 site which is based on Ektron the CMS and while the site operates and IIS never crashes we are unable to keep up with traffic due to high CPU usage. It seems there is a tipping point when we get near 100 users or more on the site.
Using process explorer I see that both my Xeon 3.0ghz CPU's will be pegged at 100% on w3wp.exe which is the IIS worker process. Inside that process there are .Net dll calls (mscorwks.dll!CreateApplicationContext) which are taking 20-40% of the CPU. I see the same behavior with low traffic but it's enough that the boxes can handle it.
There are 3 web servers behind a load balancer and too much traffic during elevated times so I need to find a fix. I believe it's a code issue in .Net as I have about 60 other webservers with similar .Net MSSQL setup and no issues. Some of those servers have 100 times the load with no issues at all.
As a test we installed the new .Net 2.0 Service Pack 1 which was released on January 23rd to see if that might fix it as it had several rollup patches and hotfixes which updated mscorwks.dll. This did not change the spiking CPU however instead of "mscorwks.dll!CreateApplicationContext" we see "mscorwks.dll!ClrCreateManagedInstance".
We have been running perfmon and SQL traces for days and everything points back to .Net itself being the issue. The hardware, network, and DB side of things appears to be stable and smooth. A general thought might be to add more hardware but sincerely thats not an option and I have other servers with literally 100 times the load with no problem running other sides.
Does anyone have any idea's on what this might be?