We currently have an issue in production where the data center is reporting that our servers are reaching >90% memory utilization. These server have 2GB of RAM. The data center folks are reporting that the w3wp.exe process' Private Bytes are 277,020K (Working Set 319,824K). This process, by far, is the largest consumer of memory in the system but that's not very large considering the total amount of RAM and the fact that nothing else even close to that size is running.

If we total all the working sets (for all processes) on the server we only get 473,472K. We know this is not the correct way to determine memory usage because it includes shared memory which may be "double counting" but we're trying to prove a point to our data center people. That leave slightly under 1.5GB of memory left unaccounted for.

My questions are: Has anyone ever seen something like this before? Is there a better way to troubleshoot this? Is it possible that because our server is running inside Virtual machine that somehow the memory isn't being reported correctly? Any insight or suggestions will be greatly appreciated.

Here our setup

  • Virtual Machine Host: VMWare ESX Server.
  • Guest OS: Windows Server 2008 Standard 32-bit Service Pack 1.
  • Guest OS RAM: 2GB
  • Application: Web server running a single ASP.NET application.
  • 1
    What else is installed on the VM? Anti-Virus, VMware Tools, SQL Express, etc? – mrdenny Jun 28 '10 at 19:29
  • doesn't w2k8 use prefetch so that in theory it should appear that your almost out of ram,even though your not? – tony roth Jun 28 '10 at 19:37
  • that .net application, is it holding a lot of session variables in memory? Is it in-process, or State Server? – Malnizzle Jun 28 '10 at 19:45
  • @mrdenny, I couldn't tell you what apps are running exactly - in addition to our ASP.NET application - because we don't control the environment but I did get a list of running processes and their memory utilizations. Like I mentioned in the post everything totals to 473,473K. They are not allowed to run anything other than utilities and server monitoring tools so I would assume that antivirus is running but I'd just be guessing. Also, no SQL Express - this box is just running our web server - SQL is a separate box. – Jeronimo Colon III Jun 28 '10 at 20:40
  • @tony roth, Not sure how that would affect the appearance of memory utilization. I'd have to look into that. What I can tell you is in our Dev & QA environments we don't see this behavior but those boxes are not using VMWare. – Jeronimo Colon III Jun 28 '10 at 20:42

Maybe you should adjust the memory used by your IIS application pool ? Or configure it to recycle more often ?


Jeronimo, if your datacenter admins are checking memory utilization as reported in VMWare, that will always appear to be almost maxed out due to the prefetch behavior that Tony Roth mentioned. The VMWare Tools don't see the difference.


I think VMware uses extra memories to process it virtual machines. This happened to me before and I end up allocating more memories to each VMs. Also, if you install VM Tools to the guest machines, it helps with those memories utilization.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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