Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: 2GB limit of memory for Oracle on WIndows 32 bit

Re: 2GB limit of memory for Oracle on WIndows 32 bit

From: Charles Hooper <hooperc2000_at_yahoo.com>
Date: Thu, 28 Jun 2007 14:56:54 -0700
Message-ID: <1183067814.438620.327240@u2g2000hsc.googlegroups.com>


On Jun 28, 4:04 pm, zigzag..._at_yahoo.com wrote:
> On Jun 28, 2:15 pm, sybra..._at_hccnet.nl wrote:
> > On Thu, 28 Jun 2007 01:42:07 -0700, zigzag..._at_yahoo.com wrote:
> > >When /3GB switch is turned on, will all oracle instances (5 in my
> > >example) still have access only to 3GB memory combined or each
> > >instance will have limit of 3GB memory. Various metalink articels say
> > >this limit to be per instance so I am confused.
>
> > They are discussing *virtual* memory, not *physical* memory. As soon
> > as a system runs out of *physical* memory, it will swap memory it no
> > longer needs to disk. When this memory is needed again it will be read
> > from disk. This is called a page fault.
> > A disk is a *slow* device.
> > So, please, pray tell me, how desirable do you think it is to
> > configure 3 Gb *per instance*?
>
> > --
> > Sybrand Bakker
> > Senior Oracle DBA
>
> If my server has 8GB physical meory, it will be nice to make use of
> 8GB instead of restricted only to 3GB. I have seen
> so many articles which talk about 3GB or 2GB per instance
> restriction, but now I am told that is not correct, 3GB or 2GB
> restriction is all instances combined, so it is confusing. Apparently
> there is some restriction related to how much shared memory one can
> allocate on Windows Server, otherwise each instance should be able to
> address 2GB or 3GB (with /3GB switch).

Google search:
  site:microsoft.com windows 2000 maximum memory

Finds this web page:
http://www.microsoft.com/whdc/system/platform/server/PAE/PAEmem.mspx "Operating systems based on Microsoft Windows NT technologies have always provided applications with a flat 32-bit virtual address space that describes 4 gigabytes (GB) of virtual memory. The address space is usually split so that 2 GB of address space is directly accessible to the application and the other 2 GB is only accessible to the Windows executive software.

The 32-bit versions of the Windows 2000 Advanced Server and Windows NT Server 4.0, Enterprise Edition, operating systems were the first versions of Windows to provide applications with a 3-GB flat virtual address space, with the kernel and executive components using only 1 GB. In response to customer requests, Microsoft has expanded the availability of this support to the 32-bit version of Windows XP Professional and all 32-bit versions of Windows Server 2003."

http://msdn2.microsoft.com/en-US/library/aa196734(SQL.80).aspx "Windows NT 4.0 and Windows 2000 provide a 4-gigabyte (GB) virtual address space at any time, the lower 2 GB of which is private per process and available for application use. The upper 2 GB is reserved for system use. Windows NT Server, Enterprise Edition provides a 4-GB virtual address space for each Microsoft Win32 application, the lower 3 GB of which is private per process and available for application use. The upper 1 GB is reserved for system use.

The 4-GB address space is mapped to the available physical memory by Windows NT Virtual Memory Manager (VMM). The available physical memory can be up to 4 GB, depending on hardware platform support."

http://msdn2.microsoft.com/en-us/library/ms178067.aspx "The 32-bit operating systems such as Windows 2000 and Windows Server 2003 provide access to 4-gigabyte (GB) of virtual address space. The lower 2 GB of virtual memory is private per process and available for application use. The upper 2 GB is reserved for operating system use. All operating system editions, starting with Microsoft Windows XP Professional and later, including Windows Server 2003, include a boot.ini switch that can provide applications with access to 3 GB of virtual memory, limiting the operating system to 1 GB. See your Windows documentation for more information on using the /3GB switch memory configuration."

>From "Microsoft Windows 95 Resource Kit" paperback version (c)1995
page 976-977:
"Windows 95 addresses this issue by using the 32-bit capabilities of the 80386 (and above) processor architecture to support a flat, linear memory model for 32-bit operating system functionality and Win32-based applications. A linear addressing model simplifies the development process for application vendors, and removes the performance penalties imposed by the segmented memory architecture.

With this addressing model, Windows 95 allows full use of the 4 GB of addressable memory space for all 32-bit operating system components and applications. Each 32-bit application can access up to 2 GB of addressable memory space, which is large enough to support even the largest desktop application.

The Memory Pager maps virtual addresses from the process's address space to physical pages in the computer's memory. In doing so, it hides the physical organization of memory from the process's threads."

Hopefully, the above clarifies how memory is allocated on 32 bit Windows, which seems to be consistent all the way back to 1995.

Charles Hooper
IT Manager/Oracle DBA
K&M Machine-Fabricating, Inc. Received on Thu Jun 28 2007 - 16:56:54 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US