Q and A: Ratio between AWE Allocated and VM Committed/Reserved in DBCC MEMORYSTATUS output

Q: What kind of ratio should you expect to see between AWE Allocated and VM Committed/Reserved? We are running 8GB with a cap of 7GB in the max server memory and yet the VM Committed is around 100MB. I was first shocked to see that the sqlservice in task manager only shows that SQL is using around 100MB and now that I have used MEMORYSTATUS I'm even more troubled.Does this mean that our server is starved for memory even though AWE can see almost all of the 7GB? On a side note we are seeing very high CPU utilization and my trail has come to a potential memory issue.

Memory Manager KB

------------------------------ --------------------

VM Reserved 1674140

VM Committed 104384

AWE Allocated 6747704

Reserved Memory 1024

Reserved Memory In Use 0

A. Actually these two values are independent. VM Committed shows amount of physical memory SQL Server allocated using VirtualAlloc's MEM_COMMIT parameter. AWE allocated shows amount of memory allocated using AllocateUserPhysicalPages. Sum of these two counters gives an approximate amount of physical memory SQL Server uses. The reason it is an approximate amount is because some external components loaded in SQL Server address space allocate memory outside of SQL Server memory manager framework. Consequently it is impossible to output exact amount. 

In your case you shouldn't worry - SQL Server does use physical memory you configured it to use. High CPU utilization that your system experience might be due to memory pressure or to other reasons. You need to find out if SQL Server hits memory pressure and if it does classify it and fix it appropriately. You can find more on memory pressure in my previous posts related to memory: https://blogs.msdn.com/slavao/archive/tags/SQL+Server+Memory+Management/default.aspx or in recently published book on SQL Server 2005 troubleshooting https://www.amazon.com/o/ASIN/0321447743/ref=s9_asin_image_1/002-4273860-1748002. The book contains a chapter on how SQL Server memory manager works as well as how to recognize and fix different types of memory related issues.