Confused: /awe /pae /3gb

  • Hi I have a SQL 2000 installation with 2 instances on a server 2003 with 9 GB ram, I want both instances to have 4 GB of Ram.

    /pae is enabled in the boot.ini, awe is enabled on both sql instances. I haven't added the /3gb switch.

    Is this goint to work?

    I have tried stress testing the database but i never reach more than 1 GB of ram, can i test the max memory use ?

    I have read: http://www.sql-server-performance.com/awe_memory.asp and http://support.microsoft.com/?kbid=283037 and it seems that i should add the /3gb switch

    thanks in advance.

  • First off what version of SQL Server are you runing, Enterprise Edition or Standard?

  • It's enterprise edition.

  • Presuming that this is the 32bit Windows on 2003....

    If this is a hot-memory added device you don't have to enable PAE, if not however I would leave the /PAE switch in the boot.ini.

    Check that you have a hard cap set for the memory allocations.

    Check the memory usage using perfmon as other methods can prove to be unreliable.



    Shamless self promotion - read my blog http://sirsql.net

  • You don't have to have the /3GB to access the additional memory, but that switch does cause the OS to use only up to 1 GB in the virtual address space (more on this a bit later). Since you have an Active/Active cluster and you want to use more than 3 GB of memory, the one thing you do have to consider is the case where both SQL Servers are running on one phyiscal node. In that case you'd have them both taking up 4 GB a piece, or 8 GB in total. Since you've got 9 GB of physical memory, you're covered.

    As for ensuring that the SQL Servers can use the additional memory, you've got the /PAE switch and you've set SQL Server to be AWE enabled. The last thing you'll need to do, if you haven't already, is grant the SQL Server service accounts the user right to Lock Pages in Memory. This is done through the local security policy and you'll need to do this on each physical node. AWE pages must be locked by the application, in this case SQL Server, hence the reason this is required. More here:

    PRB: SQL Server Only Uses Two GB of Memory Even Though the AWE Option is Enabled (811891)

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

    Now, with respect to the /3GB switch, by default, whenever the virtual memory space is setup for an application, the kernel reserves 2 GB of the 4 GB. What the /3GB switch does is force the kernel into the last 1 GB, thereby allowing up to 3GB for the process (SQL Server) to use without getting into the AWE memory. Keep in mind that this is the virtual address space and there's not typically not a 1-to-1 correspondence to physical memory. That's why it was recommended with Exchange 2000 that if you had over 1 GB of physical memory you put the /3GB switch in boot.ini.

    K. Brian Kelley
    @kbriankelley

  • That would make a most excellent article Brian....



    Shamless self promotion - read my blog http://sirsql.net

  • Ok thanks, very clear. My hunch to not use the /3gb was correct. I must say it's pretty unclear, i hope it's better with sql 2005

  • The /3GB is optional in your case. Like I said, since in the virtual memory space it forces the kernel into the last 1 GB (giving 3 GB contiguous to the application), MS recommends the setting in Exchange 2000 whenever you have over 1 GB of physical RAM. Therefore, there's probably a performance gain by doing so. How much I couldn't say. However, to use AWE memory, the /3GB is not required.

    K. Brian Kelley
    @kbriankelley

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

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