VMware Cloud Community
ChrisI88
Enthusiast
Enthusiast

VM Memory Usage vs Windows Resource Monitor

I have a Windows 2008 R2 server running MS SCCM 2012 with SQL Server 2008 R2.   6 cores and 8 Gigs of Memory allocated.

Windows Resource manager states the following:

Total:  8191 MB

Hardware reserved: 1 MB

In Use : 7947 MB

Modified : 5 MB

Standby: 237 MB

Free: 2 MB

Now VMware - vCenter performance tab states this for the VM itself:  (avg values)

Memory

Usage: 17%

Consumed:  8380723 KB 

Granted:  8388608 KB

Active:  1462878 KB

Shared :  9792 KB

Zero: 5263 KB

Balloon: 0 KB

Memory saved by zipping: 0 KB

Swapped: 0 KB

So VMware is telling me that I'm not using a lot of memory & Windows is telling me that is might need more.  Who do I believe ?

This difference always confused me because because they don't seem to show the same thing.  So I never know which one to work off of or better yet how to work with both in determining I need to add resources or not.

Anyone know a good article or a rule of thumb to use as a guide to evaluating these metrics ?

Thanks

Reply
0 Kudos
2 Replies
weinstein5
Immortal
Immortal


You are looking at two different things - Windows is telling how it is using the virtual memory it is receiving from the ESXi host - the ESXi host is showing you how it is actually being used - 8 GB is assigned and out of the 8 GB 1.4 GB is active and out of that 1.4 GB 9.7 MB is ahred via Transparent Page Sharing - the lower numbers ESXi is showing is why virtualization is so powerful in that ESXi works to economize on the memory VMs use -

So the ultimate answer is you need to look at both and balancing that against the VMs performance - is the VM seems sluggish than add more memory while keeping an eye on the Balloon memory used as this is a key indicator if there is contention for memory on the ESXi host

If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful
Reply
0 Kudos
elgreco81
Expert
Expert

Hi,

For security reasons, Windows will zero out all of the VM memory at the system startup. That's why "granted" is always so high in VMs with W2k8 and forward. That should make that a lot of memory would be "shared" (as it all has 0 written) overtime as TPS takes place and consolidate memory. That's not your case and that's because you are using SQL server. SQL server will "expand" itself until it uses almost all of your VM memory in order to accomodate its cache information. So, you are efectivily assigning 8388608 (granted) - 9792 (shared) to that particular VM.

What "Active" means is that only 1462878 KB is actually being accesed at that particular time.

As weinstein5 says, if you are not experiecing poor performance and you don't see any VM excesive paging activity, you should not worry as this "full memory usage" is normal with SQL...altought you can tune it for it to use the exact amount of memory you want.

Hope that makes things a little bit clear.

Please refer to:

Memory Counters

How to adjust memory usage by using configuration options in SQL Server

Best regards,

elgreco81

Please remember to mark as answered this question if you think it is and to reward the persons who helped you giving them the available points accordingly. IT blog in Spanish - http://chubascos.wordpress.com
Reply
0 Kudos