PAE Overhead

  • Even though we are looking at moving from x86 to x64 hardware and software and upgrading from SQL Server 2005 to SQL Server 2008, I still need to continue to support our current environment effectively.

    One suggestion to improve performance was to use PAE and AWE in our x86 environment. Checking this, we already are doing so but now I have a question that I never really considered, the memory overhead of using PAE.

    In most systems where I used PAE and AWE this was never really a major concern as the the database servers were dedicated servers. I now also have to be concerned with the memory requirements of several other applications on the server including Apache, Cold Fusion, SOLR, AV, and a few others.

    It should also be noted that in monitoring my systems I have not seen much to indicate that memory issues are a key concern for our application performance. There are quite a few other issues that drive the performance (or lack there of) regarding our application.

    I have started doing some research but my Google-fu (or Bing-fu) isn't really getting me where I need to be on this. I have been told that on a system with 32 GB of ram PAE requires about 2 GB of ram for overhead. From what I can deduce from this is that this is memory used by the OS to support PAE but I haven't found anything yet to support or deny this assertion. I have also found some information that seems to indicate that SQL Server manages this internally when PAE and AWE are used, but even this information is not conclusive.

    Any help on this would be extremely appreciated, especially links to documentation regarding this.

    Thank you.

  • Curious, why migrating to only 2008 ?

  • homebrew01 (5/25/2014)


    Curious, why migrating to only 2008 ?

    Actually migrating to SQL Server 2008 R2 and it is what we are authorized to put on the network out here in Afghanistan. SQL Server 2012 and SQL Server 2014 aren't certified for use.

  • Hi Lynn

    For a start I am no expert on these things.

    I couldn't find anything overly specific regarding this, however given the amount of times I saw that using the /3GB switch restricts the use of AWE to 16GB as there is only 1GB of kernal memory available for mapping, it would seem the 2GB requirement may be correct.

    Here's some of pages I looked at:

    http://en.wikipedia.org/wiki/Address_Windowing_Extensions

    http://technet.microsoft.com/en-us/library/ms175581.aspx

    http://blogs.msdn.com/b/psssql/archive/2012/12/11/how-it-works-sql-server-32-bit-pae-awe-on-sql-2005-2008-and-2008-r2-not-using-as-much-ram-as-expected.aspx

  • mickyT (5/25/2014)


    Hi Lynn

    For a start I am no expert on these things.

    I couldn't find anything overly specific regarding this, however given the amount of times I saw that using the /3GB switch restricts the use of AWE to 16GB as there is only 1GB of kernal memory available for mapping, it would seem the 2GB requirement may be correct.

    Here's some of pages I looked at:

    http://en.wikipedia.org/wiki/Address_Windowing_Extensions

    http://technet.microsoft.com/en-us/library/ms175581.aspx

    http://blogs.msdn.com/b/psssql/archive/2012/12/11/how-it-works-sql-server-32-bit-pae-awe-on-sql-2005-2008-and-2008-r2-not-using-as-much-ram-as-expected.aspx

    Thank you, and these are some of the pages I have found as well. Unfortunately they really don't answer the question for me. I guess what I am looking for is something that actually says that you need to allocate an additional 2 GB for the OS above and beyond any memory you may have already allocated to the OS. I just need to find documentation that supports or denies the assertion that PAE incurs a 2 GB overhead in memory. Everything I have read so far leaves this assertion in an ambiguous state.

    On our x86 systems with 32 GB of RAM I have recommended that 4 GB be allocated to the OS from the start. Now, if that 4 GB can cover the PAE overhead and provide the OS with 2 GB of memory as well, good.

  • Lynn,

    I seriously doubt you would find a trustworthy source that specifically states that you need to allow an extra 2GB for PAE.

    From what I understand, the amount of memory required to enable PAE is based on the size of the PFN database required to map the memory.

    As previously stated, if the /3GB switch is enabled, the system will only map up to 16GB of extended memory due to the fact that the /3GB switch is limiting the kernel mode memory in the first 4GB of memory down to 1GB. Addressing more than 16GB of memory under /3GB would potentially cause the PFN database to consume too much kernel memory (but it depends)

    If you are not using the /3GB switch, then the system will allocate 2GB of memory to the kernel mode system and 2GB to user mode applications (of the first 4GB) by default, so any calculations you make about how much memory to allocate to SQL server (for instance) only needs to allow for the 2GB of kernel mode memory and the requirements of other applications.

    If you are allowing 4GB of RAM for the OS on a 32bit system, then that would cover the PAE requirements as the PFN database is stored in kernel mode memory, which is part of your 4GB allocation.

    See this blog post by Mark Russinovich for some technical details, and maybe have a read of some of the other posts in the series. They are really informative.

    http://blogs.technet.com/b/markrussinovich/archive/2008/07/21/3092070.aspx

    MM



    select geometry::STGeomFromWKB(0x0106000000020000000103000000010000000B0000001000000000000840000000000000003DD8CCCCCCCCCC0840000000000000003DD8CCCCCCCCCC08408014AE47E17AFC3F040000000000104000CDCCCCCCCCEC3F9C999999999913408014AE47E17AFC3F9C99999999991340000000000000003D0000000000001440000000000000003D000000000000144000000000000000400400000000001040000000000000F03F100000000000084000000000000000401000000000000840000000000000003D0103000000010000000B000000000000000000143D000000000000003D009E99999999B93F000000000000003D009E99999999B93F8014AE47E17AFC3F400000000000F03F00CDCCCCCCCCEC3FA06666666666FE3F8014AE47E17AFC3FA06666666666FE3F000000000000003D1800000000000040000000000000003D18000000000000400000000000000040400000000000F03F000000000000F03F000000000000143D0000000000000040000000000000143D000000000000003D, 0);

  • Forum Etiquette: How to post Reporting Services problems
  • [/url]
  • Forum Etiquette: How to post data/code on a forum to get the best help - by Jeff Moden
  • [/url]
  • How to Post Performance Problems - by Gail Shaw
  • [/url]

  • mister.magoo (5/25/2014)


    I seriously doubt you would find a trustworthy source that specifically states that you need to allow an extra 2GB for PAE.

    Indeed, and it's very hard to find articles which state that <some random statement> is false because there are so many random statements without backing which get said every day.

    Maybe go back to the person who made this claim and ask for his proof/reasoning?

    Gail Shaw
    Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
    SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass
  • Here is a rather old article from a trustworthy source: http://www.sql-server-performance.com/2006/awe-memory/

    RegardsRudy KomacsarSenior Database Administrator"Ave Caesar! - Morituri te salutamus."

  • Viewing 8 posts - 1 through 7 (of 7 total)

    You must be logged in to reply to this topic. Login to reply