Memory Setup

  • I just inherited a 4 proc/4gb SQL Server 2000 Enterprise Edition (SP4) running on Windows Server 2003 Enterprise Edition (fully patched). I've read a bunch of articles here and other places on the net on how the memory should be setup, but I'd like to confirm my conclusions here with those who have already been through this war.

    It looks to me that my boot.ini file should have the /3GB option and NOT the /PAE option set. It also looks to me that in SQL Server I need to set awe_enabled to 0 (zero, or off). Is this true?

    The server currently has the /PAE option in the boot.ini and NOT the /3GB option. It also has the awe_enabled setting set to 1 (one, or on). This server still has plenty (1.5gb+) of free memory that I assume it should be using. So I assume that I'm not getting full use of it. So I assume these inherited settings are wrong and contradict how things should be setup per what I have read. Is this true?

    Finally if I add 4gb of memory to the box, then it looks like I need both the /3GB and /PAE in the boot.ini, and then enable awe_enabled to 1 (one, or on) in the database. Is this true?

    Thanks in advance, but a few extra sets of eyes on the above to confirm what I should be doing would be wonderful.

  • I guess I should also add that the reason I think more memory should be used by sql server is that when I use the performance monitor to watch the Disk Queue Length and % Disk Time, they quite often hit the wall at 100%. I am assuming I am seeing this because the sql server process is hit it's memory limit and having to hit the physical drives. Not sure if this makes sense or not, but performance certainly goes into the bucket when they hit 100%.

  • Others may disagree but the boot.ini settings are not required in your situation. 4 processors and 4GB means that you have 1 GB per processor (more or less).

    /PAE and AWE are for more than 4GB of memory.

    /3GB reserves 1GB for the Operating system leaving 3GB for SQL Server so this one probably should be set in boot.ini.

    If you server is memory constrained, which is what you seem to be stating, then add more memory, then read all of the MS articles about configuring Win03 and SQL2K for greater than 4GB of memory, there are tons of articles and many conflict with each other.

    Run the SQL Best Practices analyser and follow it's suggestions as a final verification that you got it configured right.

    Good luck.

    Andy

  • The /3GB switch refers to the virtual memory space. SQL Server will use up to 3 GB, the OS will load in the upper 1 GB of virtual memory space, instead of the standard 2 GB. However, if you want more usable memory than that, you need the /PAE switch. You can use the /3GB to squeeze extra memory out until you go above 16 GB of RAM, in which case the OS needs the extra 1 GB in order to handle memory addressing. More here:

    How to configure memory for more than 2 GB in SQL Server (274750)

    K. Brian Kelley
    @kbriankelley

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

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