AWE Allocated Values Reported Incorrectly (Large or Negative Value)

I ran into an issue today that is documented but you have to know where to find it so I wanted to point it out.

In the middle of a lengthy KB article # 907877 (https://support.microsoft.com/kb/907877) the the following comment.

"In a NUMA-enabled system, this value can be incorrect or negative. However, the overall AWE Allocated value in the Memory Manager section is a correct value."

I received this output from an customer today.   When I investigated it I found a known issue that was not corrected in SQL Server 2005 that allows a calculation to rollover a LONG value but prints out a LONGLONG value.  So depending on the calculation it may a negative or an unexpected large value in some instances.

SQL 2008: I did find a source check-in for SQL Server 2008 that corrects the behavior.

WORKAROUND: You can look at the 'Memory Manager' AWE Allocated to get the correct AWE Allocated value instead.

WS 2003 Enterprise x86

Total Physical Memory 36,350.82 MB

SQL Server 2005 x86 Enterprise

MEMORYCLERK_SQLBUFFERPOOL (Total) KB

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

VM Reserved 1506552

VM Committed 155612

AWE Allocated 4309540864

SM Reserved 0

SM Committed 0

SinglePage Allocator 0

MultiPage Allocator 7752

My math might be wrong here but AWE Allocated 4309540864 = ~4 Terabytes!??

Here is the BPOOL breakdown for each node. Node 0 looks *more correct* but not really sure if I can trust it.

(7 rows affected)

MEMORYCLERK_SQLBUFFERPOOL (node 0) KB

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

VM Reserved 1506552

VM Committed 86704

AWE Allocated 17399808 = 16 GB

SM Reserved 0

SM Commited 0

SinglePage Allocator 0

MultiPage Allocator 7752

(7 rows affected)

MEMORYCLERK_SQLBUFFERPOOL (node 1) KB

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

VM Reserved 0

VM Committed 68908

AWE Allocated 4292141056 = ~4 TB

SM Reserved 0

SM Commited 0

SinglePage Allocator 0

MultiPage Allocator 0

Bob Dorr - Principal SQL Server Escalation Engineer