AWE and MaxMem settings for SQL2K on WS2003-OS Clustered

  • We have a 2 node cluster (active-active) running on Windows Server 2003 Enterprise Edition.

    We have 4 SQL 2K sp3a instances running on the 2 nodes:

     Inst1 on NodeA

     Inst2, Inst3 and Inst4 on NodeB

    16GB of memory on each node. We have hot-add memory so we shouldn't need the /PAE switch. We do not use the /3gb switch.

    We want Inst1 to have about 8GB of memory, so we enabled AWE and set max memory to 8192.

    We want Inst2 to have 3GB of memory. So we'll enable AWE and set max memory to 3072.

    My question are:

    1) Should we enable AWE on Inst3 and Inst4?

    2) If yes. I assume we should also set the max memory value on Inst3 and Inst4. Correct?

    3) If yes to both 1 and 2. What max memory value should we use for Inst3 and Inst4 so we leave at least 1GB for the OS? Are we okay if we use 2048 on each?

    Does all of this sound like a reasonable approach?

    Thanks much!

     

     

  • This was removed by the editor as SPAM

  • Are the servers dedicated MsSQL boxes ?

    Not sure what hot-add memory is and how this affects things, but I dont understand why don't your need /PAE switch?

    MSDN explains:

    "Physical Address Extension

    The Physical Address Extension (PAE) enables applications to address more than 4 GB of physical memory. It is supported by Intel processors.

    With PAE enabled, the operating system moves from two-level linear address translation to three-level address translation. The extra layer of translation provides access to physical memory beyond 4 GB. Instead of a linear address being split into three separate fields for indexing into memory tables, it is split into four separate fields; a 2-bit field, two 9-bit fields, and a 12-bit field that corresponds to the page size implemented by Intel Architecture (4 KB).

    Typically, a process can access up to 2 GB of memory address space (assuming the /3GB switch was not used), with some of the memory being physical memory and some being virtual memory. The memory manager uses PAE to provide more physical memory to an application, which reduces the need to swap memory to the page file and increases performance. The application itself is not aware of the actual memory size. All of the memory management and allocation of the PAE memory is handled by the memory manager independently of the application."

    Why not use the /3gb switch ? 

    The /3GB switch is used to tell SQL Server to take advantage of 3GB out of the base 4GB of RAM that Windows 2000 supports natively. If you don't specify this option, then SQL Server will only take advantage of 2GB of the first 4GB of RAM in the server, essentially wasting 1GB of RAM.

    Regarding AWE, read this excerpt from MSDN;

    "Address Windowing Extensions (AWE) is a set of extensions that allows an application to quickly manipulate physical memory greater than 4GB. Certain data-intensive applications, such as database management systems and scientific and engineering software, need access to very large caches of data. In the case of very large data sets, restricting the cache to fit within an application's 2GB of user address space is a severe restriction. In these situations, the cache is too small to properly support the application.

    AWE solves this problem by allowing applications to directly address huge amounts of memory while continuing to use 32-bit pointers. AWE allows applications to have data caches larger than 4GB (where sufficient physical memory is present). AWE uses physical nonpaged memory and window views of various portions of this physical memory within a 32-bit virtual address space"

    This seems to indicate that the restriction on memory usage is within an application's address space, not within the OS. So I would draw the conclusion that you dont have to set AWE for apps that use less than 4Gb.

    It sounds like using fixed memory for instances 2-4 is a good idea anyway.

    I hope my suggestion help (from my experience of doing this on a win2k server / (single instance) sql2k Ent.)

    Good luck

     

  • From MSDN:

    On 32-bit versions of Windows, PAE is disabled by default. You must use the /pae boot parameter to enable PAE.

    However, PAE is automatically enabled when the computer is configured for hot-add memory devices in memory ranges beyond the 4 GB region, as defined by the Static Resource Affinity Table (SRAT). Hot-add memory supports memory devices that you can add without rebooting or turning off the computer. In this case, because PAE must be enabled when the system starts, it is enabled automatically so that the system can immediately address extended memory that is added between restarts. Hot-add memory is supported only on Windows Server 2003, Enterprise Edition and Windows Server 2003, Datacenter Edition, and only on computers with an ACPI BIOS, an x86 processor, and specialized hardware.

     

    Not sure about the /3gb switch - we're running Windows Server 2003 Enterprise Edition.

Viewing 4 posts - 1 through 3 (of 3 total)

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