/3gb

  • [SQL Server 2000 E.E. on Win2K A/S]

    I have 8gb ram in my server. I use the /PAE switch in boot.ini, enable AWE, service to lock pages in memory, and set max server memory to 7GB. This works fine for me. The /PAE allows the OS to see above the 4GB limit and SQL Server can take 7GB here.

    Question:

    Does anyone use the /3GB switch?

    Does this switch limit the O.S. to only take up to 1GB of RAM?

    In my situation I am not sure if I should use it or not. I have left 1GB only to the O.S. anyway. Can the O.S. take any of the 7GB I have set for SQL Server RAM if it needed it for itself?

    Edited by - bryan99y on 12/10/2002 3:45:30 PM

  • This is my understanding of how to use the /3GB and /PAE switches in the boot.ini:

    If you have less than/equal to 4GB of RAM and you want SQL to use NO more than 2GB, do nothing.

    If you have less than/equal to 4GB of RAM and you want SQL to use 3GB, add the /3GB switch.

    If you have more than 4GB of RAM and you want SQL to use all but 1GB, add the /3GB and /PAE switches AND set awe enabled in SQL.

    If you have more than 16GB of RAM and you want SQL to use all but 2GB, add only /PAE switch AND set awe enabled in SQL.

    When you have more than 16GB of RAM, you can't use the /3GB switch.

    It sounds like you should use the /3GB, /PAE and awe enabled options.

    -Dan


    -Dan

  • My limited understanding is that the config switch merely enables the >2Gb memory on your server. I'm not sure that it really limits the OS to 1Gb or not.

  • SQL will be able to take up to 7GB of physical RAM, but if the OS deems an issue warrants taking memory away it always can. If you have SQL set to a fixed amount of memory it can push SQL to swap file for it to do so. Keep in mind you have virtual memory beyond the physical in the way of the page swap file(s).

  • So Antares686,

    what does the /3GB do?

    what switches do you suggest for 8GB RAM?

  • quote:


    So Antares686,

    what does the /3GB do?

    what switches do you suggest for 8GB RAM?


    From BOL "Using AWE Memory on Windows 2000"

    quote:


    If you specify a /3GB switch in the Boot.ini file of Windows NT Enterprise Edition or Windows 2000 Advanced Server, the operating system reserves only 1 GB of the address space, and the application can access up to 3 GB.


    And from BOL "Managing AWE Memory"

    quote:


    Windows 2000 Usage Considerations

    Before you configure Windows 2000 for AWE memory, consider the following:

    To enable Windows 2000 Advanced Server or Windows 2000 Datacenter Server to support more than 4 GB of physical memory, you must add the /pae parameter to the boot.ini file.

    To enable Windows 2000 Advanced Server and Windows 2000 Datacenter Server to support a 3-GB virtual address space, you must add the /3gb parameter to the boot.ini file. This allows user applications to address 3 GB of virtual memory and reserves 1 GB of virtual memory for the operating system.

    However, if there is more than 16 GB of physical memory available on a computer, Windows 2000 needs 2 GB of virtual memory address space for system purposes and therefore can support only a 2-GB virtual address space.

    In order to allow AWE to use the memory range above 16 GB, be sure the /3gb parameter is not in the boot.ini file. If it is, Windows 2000 will be unable to address any memory above 16 GB. When allocating SQL Server AWE memory on a 32-GB system, Windows 2000 may require at least 1 GB of available memory to manage AWE. Therefore, when starting an instance of SQL Server with AWE enabled, it is recommend you do not use the default max server memory setting, but instead limit it to 31 GB or less.

    For more information, see Using AWE Memory on Windows 2000.


    And from http://www.sql-server-performance.com/sql_server_performance_audit5.asp "Awe Enabled"

    quote:


    Awe Enabled

    If you are using SQL Server 2000 Standard Edition under Windows NT 4.0 or Windows 2000 (any version), or are running SQL Server 2000 Enterprise Edition under Windows NT 4.0 or Windows 2000 Server, or if your server has less than 4GB or RAM, the "awe enabled" option should always be left to the default value of 0, which means that AWE memory is not being used.

    The AWE (Advanced Windowing Extensions) API allows applications (that are written to use the AWE API) to run under Windows 2000 Advanced Server or Windows 2000 Datacenter Server to access more than 4GB of RAM. SQL Server 2000 Enterprise Edition (not SQL Server 2000 Standard Edition) is AWE-enabled and can take advantage of RAM in a server over 4GB. If the operating system is Windows 2000 Advanced Server, SQL Server 2000 Enterprise Edition can us up to 8GB of RAM. If the operating system is Windows 2000 Datacenter Server, SQL Server 2000 Enterprise can use up to 64GB of RAM.

    By default, if a physical server has more than 4GB of RAM, Windows 2000 (Advanced and Datacenter), along with SQL Server 2000 Enterprise Edition, cannot access any RAM greater than 4GB. In order for the operating system and SQL Server 2000 Enterprise Edition to take advantage of the additional RAM, two steps have to be completed.

    Exactly how you configure AWE memory support depends on how much RAM your server has. Essentially, to configure Windows 2000 (Advanced or Datacenter), you must enter one of the following switches in the boot line of the boot.ini file, and reboot the server:

    4GB RAM: /3GB (AWE support is not used)

    8GB RAM: /3GB /PAE

    16GB RAM: /3GB /PAE

    16GB + RAM: /PAE

    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.

    AWE memory technology is used only for the RAM that exceeds the base 4GB of RAM, that's why the /3GB switch is needed to use as much of the RAM in your server as possible. If your server has 16GB or less of RAM, then using the /3GB switch is important. But if your server has more than 16GB of RAM, then you must not use the /3GB switch. The reason for this is because the 1GB of additional RAM provided by adding the /3GB switch is needed by the operating system in order to take advantage of all of the extra AWE memory. In other words, the operating system needs 2GB or RAM itself to mange the AWE memory if your server has more than 16GB of RAM. If 16GB or less of RAM is in a server, then the operating system only needs 1GB of RAM, allowing the other 1GB of RAM for use by SQL Server.

    Once this step is done, the next step is to set the "awe enabled" option to 1, and then restart the SQL Server service. Only at this point will SQL Server be able to use the additional RAM in the server.

    One caution about using the "awe enabled" setting is that after turning it on, SQL Server no longer dynamically manages memory. Instead, it takes all of the available RAM (except about 128MB which is left for the operating system). If you want to prevent SQL Server from taking all of the RAM, you must set the "max server memory" option (described in more detail later in this article) to a figure that limits SQL Server to the amount or RAM you specify.

    As part of your audit process, you will want to check what this setting is and then determine if the setting matches your server's configuration. If not, then change the setting appropriately.


    Hope these help.

  • "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."

    - base 4GB of RAM?????

    From BOL:

    To enable Windows 2000 Advanced Server and Windows 2000 Datacenter Server to support a 3-GB virtual address space, you must add the /3gb parameter to the boot.ini file. This allows user applications to address 3 GB of virtual memory and reserves 1 GB of virtual memory for the operating system.

    - "Virtual Memory" (i.e. swap file.)

    Its my understanding that the /3GB switch is only for virtual memory space addressing. Not for the 4GB of base memory.

  • Looks like a documentation error. The /3GB to my understanding to allow applications to reach into that extra GB that otherwise the OS would own in native mode. Apps 2GB OS reserves 2GB, with /3GB switch tells OS to reserve only 1GB physical of 4GB memory. I do however rmemember seeing a post by Steve Jones here that 4Gb only really bennifits about 500MB and that you really don't see much of a difference until you hit 8GB or memory. I will check with SP3 guys to see if they can shed some light on this for me.

  • So based on this, Virtual address space is different from Virtual memory.

    Virtual Address space is the total amount of addressable memory. (Physical + page file)

    Base Memory - up to 4GB.

    /3GB switch only relates to the base 4GB memory.

    Put it in: 3GB base for Apps, 1GB base for O.S.

    Leave it out - 2GB base for Apps, 2GB base for O.S.

  • Sounds right but I am trying to verify to be 100% sure on this.

  • By default, the OS gets 2GB virtual (phys mem + pagefile) and the apps get 2GB virtual always. Physical mem doesn't affect this.

    When you get a 4GB server, then you can shift this ratio by limiting the OS to 1GB and getting 3GB for the apps using physical RAM. Be wary of this. The OS really likes RAM as well to a point, plus it needs RAM for mapping the physical RAM in your "window" using AWE. If you have 4GB and set SQL to use 3GB, then you may be slightly starving the OS. From my talks with NetIQ, MS PSS, and MS Perf guys, they'd stop around 2.5GB for SQL.

    In fact, if you have 2GB RAM, don't go to 4GB, go above it (recommended).

    At 8GB, I would not give SQL 7GB. I'd give it 6, maybe 6.5 if I needed it. The OS has more of a need for mem than 1GB. Above 8GB, you should NEVER enable the /3GB. The OS needs 1GB of RAM just for the mapping of pages.

    Steve Jones

    sjones@sqlservercentral.com

    http://qa.sqlservercentral.com/columnists/sjones

  • Microsoft told me not to use the /3GB switch in an 6GB or even a 8GB box. When AWE is enabled also.

    - Not totally sure why yet. Still waiting on another email from them.

    Edited by - bryan99y on 12/11/2002 1:12:40 PM

  • You know with as much pain as this is to do I wish they would take a hint and just fix it so the OS does the work for you as it should instead of all this configuring crap. I mean it is not hard to know how much RAM is installed and the OS knows what is there. SQL should be more of a breeze than this. Maybe they will correct some day.

  • quote:


    Microsoft told me not to use the /3GB switch in an 6GB or even a 8GB box. When AWE is enabled also.

    - Not totally sure why yet. Still waiting on another email from them.


    Please, when you get this email, post info here. I am in the same situation and am looking for the same answers...

    --

    Chris Hedgate @ Apptus Technologies (http://www.apptus.se)

    http://www.sql.nu

Viewing 14 posts - 1 through 13 (of 13 total)

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