3

there's plenty of articles that explain the use of the /3GB startup switch. The general explanation is ..

Regardless of the amount of physical memory in your system, Windows uses a virtual address space of 4 GB, with 2 GB allocated to user-mode processes (for example, applications) and 2 GB allocated to kernel-mode processes (for example, the operating system and kernel-mode drivers). On systems that have 1 GB or more of physical memory, these two startup switches can be used to allocate more memory to applications (3 GB) and less memory to the operating system (1 GB).

Ok - that's not hard to understand. ... ... but is this a good thing for a Sql Server? Is the answer dependant upon how much total memory exists in the server?

For this discussion can we relate any answers to

  1. 4 GB ram
  2. 16 GB ram

... with a server containing Windows 2008 standard x64 + Sql Server 2008 x64. I hope the # of processors don't impact the answer :P

So i suppose i'm asking, does Sql Server require a lot of ram for OS + kernal mode drivers?

Pure.Krome
  • 6,338
  • 17
  • 72
  • 86
  • I suggest you also to read answers to the similar question http://serverfault.com/questions/27352/are-there-any-drawbacks-of-3gb-switch-in-boot-ini-for-32bit-windows – Bogdan_Ch Jul 06 '09 at 09:50

2 Answers2

13

The /3GB switch does not apply to 64-bit editions of Windows

http://support.microsoft.com/kb/294418

Applications that are compiled with the /LARGEADDRESSAWARE option, as would be required to take advantage of the /3GB switch in 32-bit Windows, will automatically be able to address 4 GB of virtual memory without any boot time switches or changes to x64 Windows. Plus, of course, the operating system does not have to share that 4 GB of space. Therefore, it is not constrained at all

and

A pool of system Page Table Entries (PTEs) that is used to map system pages such as I/O space, Kernel stacks, and memory descriptor lists. 64-bit programs use a 16-terabyte tuning model (8 terabytes User and 8 terabytes Kernel). 32-bit programs still use the 4-GB tuning model (2 GB User and 2 GB Kernel). This means that 32-bit processes that run on 64-bit versions of Windows run in a 4-GB tuning model (2 GB User and 2GB Kernel). 64-bit versions of Windows do not support the use of the /3GB switch in the boot options. Theoretically, a 64-bit pointer could address up to 16 exabytes. 64-bit versions of Windows have currently implemented up to 16 terabytes of address space

Kevin Kuphal
  • 9,064
  • 1
  • 34
  • 41
3

With SQL Server the more memory the better. SQL Server will pretty much take what ever you can give it. You'll want to reserve at least 1 Gig for the OS, and leave the rest for SQL Server.

Because its the 64bit OS you won't need the 3GB or AWE switches for the OS.

mrdenny
  • 27,074
  • 4
  • 40
  • 68