Re: When to use the /3 GB switch

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance

From: Mike Hodgson (mike.hodgson_at_mallesons.nospam.com)
Date: 02/21/05


Date: Mon, 21 Feb 2005 17:12:00 +1100

With 3GB of physical RAM in your box, no you shouldn't enable the /3GB
switch.

This switch would be better off called the 1GB switch rather than the
3GB switch because what it actually does is reduce the kernel mode
address space from 2GB down to 1GB thereby allowing the user mode
address space to use 3 out of the 4GB of virtual addresses in a Win32
application. The maximum addressable memory in a 32-bit application is
4GB (2^32 bytes). Windows splits this into 2 parts - the user mode
address space and the kernel mode address space. Note, these are all
virtual addresses and are mapped to physical RAM as needed. By
specifying /3GB in boot.ini you're altering the 2/2 split to be 3/1 so
the kernel code has less memory to play with.

With 3GB of physical RAM in your box, the absolute most physical RAM an
app could play with (assuming nothing else was running on the box) would
be (3GB - O/S RAM). So, if the kernel needs at least 1GB, that only
leaves a max of 2GB left, which is the standard user addressable
memory. So telling the kernel it can only use 1GB is pointless, may as
well leave it at the standard 2/2 split.

To answer your other question, /3GB is still supported in Win 2003 (I
think) but Microsoft recommend using the /USERVA switch, which is new to
Win 2003. /USERVA allows a greater granularity so you can specify, for
example, /USERVA=2560 to indicate that the user mode address space is
2.5GB and the kernel mode address space is 1.5GB.

HTH, sorry about the waffle. :-[

--
*mike hodgson* |/ database administrator/ | mallesons stephen jaques
*T* +61 (2) 9296 3668 |* F* +61 (2) 9296 3885 |* M* +61 (408) 675 907
*E* mailto:mike.hodgson@mallesons.nospam.com |* W* http://www.mallesons.com
Josh G via SQLMonster.com wrote:
>I have a new installation of Windows 2003 Standard server with SQL 2000.
>And 3 GB of Memory installed. Should I use the /3 GB switch? Is it even
>support in windows 2003 standard edition?
>
>  
>


Relevant Pages

  • Re: Full text 4Gb memory
    ... The /3GB switch refers to the Virtual Address Space for any process, ... Whether or not that space is backed by physical ram is ... dependent on the configuration of the server and other applications running ... one application could be allocated 1 GB for kernel mode, ...
    (microsoft.public.sqlserver.server)
  • Re: out of memory problem
    ... But I'll try that switch in boot.ini too. ... More physical RAM will make it faster as it won't have ... Matlab can allocate at most about 1.4Gb of memory. ... 2GB for the OS kernel and 2GB for applications. ...
    (comp.soft-sys.matlab)
  • Re: Why is not all my memory shown??
    ... I figured somebody would bring up this switch. ... Every process running in Windows XP gets a 4GB virtual address space. ... The switch has nothing at all to do with physical RAM. ... only benefits applications that can take advantage of this. ...
    (microsoft.public.windowsxp.general)
  • Re: SP2 RAM Question
    ... > have found is that '/3GB' switch which crashed my system hard. ... a maximum of 4GB of physical RAM. ... > Does anyone know if SP2 enables support for more than 3GB of RAM? ...
    (microsoft.public.windowsxp.general)
  • process switch...
    ... I read in Understanding Linux kernel that process switch only happens ... Now I confuses how come a process like having following ... so it doesn't need to swtich into kernel mode. ... overlooking the priorities, on the time quanta basis, whenever it ...
    (comp.os.linux.development.system)