SQL Server Performance

Why does DMV report AWE memory allocation when AWE is not enabled - 64bit?

Discussion in 'SQL Server 2005 Performance Tuning for DBAs' started by DBADave, Dec 29, 2008.

  1. DBADave New Member

    I want to see if we are having memory problems with our 64-bit server running 64-bit 2005 EE. Why would a DMV report AWE memory when AWE is not enabled? 'lock pages in memory' is enabled so perhaps this has something to do with it.
    When I run the query below I see results returned.
    Select sum(awe_allocated_kb) / 1024 as [AWE allocated, Mb]
    From sys.dm_os_memory_clerks
    AWE allocated, Mb
    --------------------
    27069
  2. satya Moderator

  3. DBADave New Member

    I don't have AWE enabled, that's why I am confused why SQL Server is reporting that AWE is being used. The blog you referenced is interesting and I was able to find additional information at the following link.
    http://blogs.msdn.com/slavao/archive/2005/04/29/413425.aspx
    However, I'm not sure I understand him. Is he indicating that if I enable Lock Pages in Memory and NOT AWE the OS will still report memory usage as AWE memory even though AWE is not enabled?
    I always thought AWE was a way to trick a 32-bit OS to thinking it had more memory, but in a 64-bit architecture the trick is not necessary since more bits are available to store memory information.
    What am I missing?
  4. satya Moderator

    The shenanigans of enabling or disabiling the AWE within 32bit is not required in 64 bit, thats what I found within my experience [:)].
  5. Elisabeth Redei New Member

    Hi,
    If the "Lock Pages in Memory" right is set on 64-bit, SQL Server will use the AWE APIs to allocate memory. The purpose of this on 64-bit is to avoid working set trimming (as per http://support.microsoft.com/kb/918483) and on 32-bit the purpose of using AWE APIs is to be able to access more memory (and "Lock Pages in memory" is required to use the AWE APIs).
    HTH
    /Elisabeth
  6. DBADave New Member

    That's what I thought based upon a few articles I just read. Not enabling "Lock Pages in Memory" for 64-bit is typically not a good idea so we have it enabled. I'll just have to remember the AWE readings I see on 64bit servers are the result of the lock pages.
    Thanks
  7. Elisabeth Redei New Member

    Hi,
    If the "Lock Pages in Memory" right is set on 64-bit, SQL Server will use the AWE APIs to allocate memory for the buffer pool. The purpose of this on 64-bit is to avoid working set trimming (as per http://support.microsoft.com/kb/918483) and on 32-bit the purpose of using AWE APIs is to be able to access more memory (and "Lock Pages in memory" is required to use the AWE APIs).
    HTH
    /Elisabeth

Share This Page