Recently I have recieved following question: A customer of mine is getting this output on an Itanium with 16GB of memory:
Memory Manager KB
VM Reserved 16979888
VM Committed 217928
AWE Allocated 14116272
Reserved Memory 1024
Reserved Memory In Use 0
Q. How can VM Committed be so much less than AWE Allocated, or is this counter broken when Lock Pages are used?
A. The counter is not broken. The output above shows what API SQL Server uses to allocate physical memory. When you enable SQL Server to use AWE mechanism to allocate physical memory, SQL Server will use AWE API to allocate memory for majority of its allocations, i.e. for Buffer Pool. (Please don’t forget that Buffer Pool acts as preferable memory manager for dynamic allocations) When SQL Server uses AWE mechanism, you will see increase for AWE Allocated and drop in VM Committed since SQL Server no longer uses VirtualAlloc (…,MEM_COMMIT,…) to allocate physical memory for Buffer Pool.
Q. Also, in the memory clerks, I find
MEMORYCLERK_SQLQERESERVATIONS (Total) KB
VM Reserved 0
VM Committed 0
AWE Allocated 0
SM Reserved 0
SM Commited 0
SinglePage Allocator 8184408
MultiPage Allocator 0
What are SQLQERESERVATIONS? Do they represent workspace memory in use?
A. This is a reservation clerk. It represents how much memory has been allocated by Query Execution out of reservation performed earlier to run queries. You can look at memory broker output for reservations in dbcc memorystatus to find out how much memory is actually reserved.