Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am hosting < 20 asp classic websites on a Windows 2008 Server. All of the websites run on my custom CMS. I am migrating them from a 2003 server.

Memory was also an issue when these sites were hosted on 2003, but not nearly as severe.

On the 2008 server, When a visitor visits any page on any on any of my sites, the server consumes approximately 30 megs of Private Bytes and 40 megs of Working Set RAM. This is for each page. 1 visitor, 1 page.

If recycling is not performed frequently, the site will virtually lock up.

I believe the issue is that my CMS is too heavy with #includes (I have tested this theory successfully), and I believe IIS is caching the entire thing.

Can I limit the amount of memory that w3wp.exe consumes when caching these pages or even turn caching off entirely? I have tried settings in IIS and with the exception of setting Recycling Memory Limits, I cannot change the amount of memory w3wp.exe uses for each app pool.

Frequent Recycling is not desirable.

I would appreciate any and all help.

share|improve this question
Fix the memory leak in the code? – t1nt1n Mar 11 '12 at 17:16
Also: details? Amount of RAM? Number of app pools, app pool configuration? – TristanK Mar 11 '12 at 20:40
I'm inclined to believe that it's your code that's shit. – Tom O'Connor Mar 11 '12 at 21:12

Do you mean over and above the baseline memory use of the W3WP? 30/40MB is a kinda-normal sounding number for a "warm up the pool" request.

Just because 1 user, 1 page uses 30/40MB doesn't mean that 20 users of that page would use significantly more. ASP has some startup overhead that gets amortized over all the users of that page/site.

Are the apps all different sites? Have you tried consolidating them into fewer App Pools (as presumably might have been the case in IIS 6?)

You can run app pools as 32-bit to limit their memory use, but you can't specify an actual limit they're constrained to, only the point at which they recycle at (this depends on your app framework).

You can look into using WSRM to constrain memory, but fixing the code or finding the option causing the behavior change is the better option.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.