I have one website on my server, and my IIS Worker Process is using 4GB RAM consistently. What should I be checking?
c:\windows\system32\inetsrv\w3wp.exe
Go to Tools & Settings > IIS Application Pool:Recycling at regular time intervals (minutes) Recycling when the maximum number of requests is reached. Recycling when the maximum amount of virtual memory is used. Recycling when the maximum amount of private memory is used.
A healthy IIS Server will consume approximately 300 - 600 MB, maybe 700 MB RAM when busy. When it uses more than 700 MB RAM, it's telling you that: You have a lot of concurrent web users.
In general, high memory is when your ASP.NET worker process (Aspnet_wp.exe) or Internet Information Services (IIS) worker process (W3wp.exe) memory is consistently increasing and isn't returning to a comfortable level.
Fix high CPU usage in the IIS worker process. To fix the high CPU usage, you will need to do two things: Eliminate the blockages causing poor performance under high CPU usage (making your workload more elastic). Reduce CPU usage of the application code, to avoid CPU overloads and be able to handle more traffic.
I would check the CLR Tuning Section in the document Gulzar mentioned.
As the other posters pointed out, any object that implements IDispose
should have Dispose()
called on it when it's finished with, preferably using the using
construct.
Fire up perfmon.exe
and add these counters:
- Process\Private Bytes
- .NET CLR Memory# Bytes in all Heaps
- Process\Working Set
- .NET CLR Memory\Large Object Heap size
An increase in Private Bytes while the number of Bytes in all Heaps counter remains the same indicates unmanaged memory consumption.
An increase in both counters indicates managed memory consumption
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With