dbaspot
Tags Register FAQ Calendar Search Today's Posts Mark Forums Read

2GB limit of memory for Oracle on WIndows 32 bit - Oracle Server

This is a discussion on 2GB limit of memory for Oracle on WIndows 32 bit - Oracle Server ; I am on Windows 2000 server and usng Oracle 9.2.0.6. I know 32 bit Oracle has limit of 2GB memory. I have 5 Oracle database instances, so I see 5 oracle.exe in task manager. I am assuming each oracle.exe can ...


Home > Database Forum > Oracle Database > Oracle Server > 2GB limit of memory for Oracle on WIndows 32 bit

Reply

 

LinkBack (4) Thread Tools Display Modes
  3 links from elsewhere to this Post. Click to view. #1  
Old 06-27-2007, 11:45 AM
Database Bot
 
Join Date: Sep 2009
Posts: 1,236,254
Database Administrator is on a distinguished road
Default 2GB limit of memory for Oracle on WIndows 32 bit

I am on Windows 2000 server and usng Oracle 9.2.0.6. I know 32 bit
Oracle has limit of 2GB memory. I have 5 Oracle database instances, so
I see 5 oracle.exe in task manager. I am assuming each oracle.exe can
access up to 2GB memory, so up to 10GB memory can be used by Oracle on
the server.

Thanks a lot.

Reply With Quote
  #2  
Old 06-27-2007, 12:02 PM
Database Bot
 
Join Date: Sep 2009
Posts: 1,236,254
Database Administrator is on a distinguished road
Default Re: 2GB limit of memory for Oracle on WIndows 32 bit

On Jun 27, 8:44 am, zigzag...@yahoo.com wrote:
> I am on Windows 2000 server and usng Oracle 9.2.0.6. I know 32 bit
> Oracle has limit of 2GB memory. I have 5 Oracle database instances, so
> I see 5 oracle.exe in task manager. I am assuming each oracle.exe can
> access up to 2GB memory, so up to 10GB memory can be used by Oracle on
> the server.
>
> Thanks a lot.


No, not exactly. You have 2GB of memory for *all* of the Oracle
requirements. It's gross.

3 ways of dealing with that limitation:

1: the /3GB switch in boot.ini: allows for 3GB to be made available to
programs, with the kernel taking 1GB (could be repercussions there
too)

2: the /PAE switch in boot.ini: allows for use of upper memory
(anything above 4GB). Oracle needs to be configured to use this
memory, and this memory can only be used for the buffer cache. Shared
Pool, PGA, all the rest needs to sit in 'base' memory no matter what.

The /3GB and /PAE switches can be used together, but if they are, you
will never see more than 16GB on the box, even if there's 64GB of
physical memory installed. Just the way it works.

3: Use 64-Bit windows.

BD

Reply With Quote
  #3  
Old 06-27-2007, 12:10 PM
Database Bot
 
Join Date: Sep 2009
Posts: 1,236,254
Database Administrator is on a distinguished road
Default Re: 2GB limit of memory for Oracle on WIndows 32 bit

On Jun 27, 10:44 am, zigzag...@yahoo.com wrote:
> I am on Windows 2000 server and usng Oracle 9.2.0.6. I know 32 bit
> Oracle has limit of 2GB memory. I have 5 Oracle database instances, so
> I see 5 oracle.exe in task manager. I am assuming each oracle.exe can
> access up to 2GB memory, so up to 10GB memory can be used by Oracle on
> the server.
>
> Thanks a lot.


Is this a question?

Have you considered the memory limitations imposed by Windows 2000?
Yes, you can use the /PAE switch to enable a virtual 64-bit addressing
scheme but you are still left with a 2 GB limit for the kernel; adding
more page tables to 'trick' the application into thinking there is
more memory causes you to consume more of the limited 2 GB of memory
the kernel processes are using. This may not be the wisest of ideas.

I would research this further before you decide on an implementation
date; you could be setting yourself up for failure in a grand way with
this scheme.



David Fitzjarrell

Reply With Quote
  #4  
Old 06-28-2007, 04:42 AM
Database Bot
 
Join Date: Sep 2009
Posts: 1,236,254
Database Administrator is on a distinguished road
Default Re: 2GB limit of memory for Oracle on WIndows 32 bit

On Jun 27, 12:01 pm, BD wrote:
> On Jun 27, 8:44 am, zigzag...@yahoo.com wrote:
>
> > I am on Windows 2000 server and usng Oracle 9.2.0.6. I know 32 bit
> > Oracle has limit of 2GB memory. I have 5 Oracle database instances, so
> > I see 5 oracle.exe in task manager. I am assuming each oracle.exe can
> > access up to 2GB memory, so up to 10GB memory can be used by Oracle on
> > the server.

>
> > Thanks a lot.

>
> No, not exactly. You have 2GB of memory for *all* of the Oracle
> requirements. It's gross.
>
> 3 ways of dealing with that limitation:
>
> 1: the /3GB switch in boot.ini: allows for 3GB to be made available to
> programs, with the kernel taking 1GB (could be repercussions there
> too)
>
> 2: the /PAE switch in boot.ini: allows for use of upper memory
> (anything above 4GB). Oracle needs to be configured to use this
> memory, and this memory can only be used for the buffer cache. Shared
> Pool, PGA, all the rest needs to sit in 'base' memory no matter what.
>
> The /3GB and /PAE switches can be used together, but if they are, you
> will never see more than 16GB on the box, even if there's 64GB of
> physical memory installed. Just the way it works.
>
> 3: Use 64-Bit windows.
>
> BD


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.

Reply With Quote
  #5  
Old 06-28-2007, 08:31 AM
Database Bot
 
Join Date: Sep 2009
Posts: 1,236,254
Database Administrator is on a distinguished road
Default Re: 2GB limit of memory for Oracle on WIndows 32 bit

On Jun 28, 3:42 am, zigzag...@yahoo.com wrote:
> On Jun 27, 12:01 pm, BD wrote:
>
>
>
> > On Jun 27, 8:44 am, zigzag...@yahoo.com wrote:

>
> > > I am on Windows 2000 server and usng Oracle 9.2.0.6. I know 32 bit
> > > Oracle has limit of 2GB memory. I have 5 Oracle database instances, so
> > > I see 5 oracle.exe in task manager. I am assuming each oracle.exe can
> > > access up to 2GB memory, so up to 10GB memory can be used by Oracle on
> > > the server.

>
> > > Thanks a lot.

>
> > No, not exactly. You have 2GB of memory for *all* of the Oracle
> > requirements. It's gross.

>
> > 3 ways of dealing with that limitation:

>
> > 1: the /3GB switch in boot.ini: allows for 3GB to be made available to
> > programs, with the kernel taking 1GB (could be repercussions there
> > too)

>
> > 2: the /PAE switch in boot.ini: allows for use of upper memory
> > (anything above 4GB). Oracle needs to be configured to use this
> > memory, and this memory can only be used for the buffer cache. Shared
> > Pool, PGA, all the rest needs to sit in 'base' memory no matter what.

>
> > The /3GB and /PAE switches can be used together, but if they are, you
> > will never see more than 16GB on the box, even if there's 64GB of
> > physical memory installed. Just the way it works.

>
> > 3: Use 64-Bit windows.

>
> > BD

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


It's a hard OS limit. It is easily reached with one oversize SGA and
a small handful of oversize PGAs. I've seen it reached with as few as
4 connections on a server running a single database.

Your Windows is a 32-bit OS. As such it (the OS) can only address 4g
of memory without resorting to smoke and mirrors. By default, Windows
will reserve 50% of the physical memory (up to the 4g limit) for
itself, which means that with 4g or more installed, Windows will
reserve 2g for itself, leaving 2g for *ALL* other processes. the /3GB
switch will tell windows to reserve only 1gb for itself and release
3gb for *ALL* other processes. These are hard OS limits.

The PAE switch allows Windows to start using the smoke and mirrors to
reach memory beyond 4gb (up to 16gb), but to use this memory, the app
still has to cooperate in ways that it sees fit. Oracle sees fit to
use it for buffer cache only. Everything else still has to fit into
whatever memory the OS allocated to Oracle out of the base 2 or 3 gb.

Search MetaLink for ORA-4030 and "Windows memory". You'll get several
good articles which explain all this in excruciating detail.

Reply With Quote
  #6  
Old 06-28-2007, 02:16 PM
Database Bot
 
Join Date: Sep 2009
Posts: 1,236,254
Database Administrator is on a distinguished road
Default Re: 2GB limit of memory for Oracle on WIndows 32 bit

On Thu, 28 Jun 2007 01:42:07 -0700, zigzagdna@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
Reply With Quote
  #7  
Old 06-28-2007, 04:04 PM
Database Bot
 
Join Date: Sep 2009
Posts: 1,236,254
Database Administrator is on a distinguished road
Default Re: 2GB limit of memory for Oracle on WIndows 32 bit

On Jun 28, 2:15 pm, sybra...@hccnet.nl wrote:
> On Thu, 28 Jun 2007 01:42:07 -0700, zigzag...@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).

Reply With Quote
  #8  
Old 06-28-2007, 05:17 PM
Database Bot
 
Join Date: Sep 2009
Posts: 1,236,254
Database Administrator is on a distinguished road
Default Re: 2GB limit of memory for Oracle on WIndows 32 bit

On Thu, 28 Jun 2007 13:04:19 -0700, zigzagdna@yahoo.com wrote:

>On Jun 28, 2:15 pm, sybra...@hccnet.nl wrote:
>> On Thu, 28 Jun 2007 01:42:07 -0700, zigzag...@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).


I don't know whether you are a developer or a DBA or a sysadmin. In
the latter 2 cases (but also in the first case) you really should try
to understand the virtual memory concept. Allocating virtual memory
*beyond* physical memory doesn't make sense, as it will force your
system to swap.
Even if you would have 8 Gb, it *doesn't make sense* to allocate 3 Gb
for every instance, as that will allocate 15 Gb, which is 7 Gb beyond
physical RAM. Is that going to work? OF COURSE NOT, as the SYSTEM is
GOING TO SWAP LIKE HELL.

If you still don't understand this, I would recommend you find a
different profession.

Why is it that nowadays IT personell doesn't have a clue about the
underlying technology?

--
Sybrand Bakker
Senior Oracle DBA
Reply With Quote
  #9  
Old 06-28-2007, 05:26 PM
Database Bot
 
Join Date: Sep 2009
Posts: 1,236,254
Database Administrator is on a distinguished road
Default Re: 2GB limit of memory for Oracle on WIndows 32 bit

On Jun 28, 1:04 pm, zigzag...@yahoo.com wrote:
> On Jun 28, 2:15 pm, sybra...@hccnet.nl wrote:
>
>
>
>
>
> > On Thu, 28 Jun 2007 01:42:07 -0700, zigzag...@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).- Hide quoted text -
>
> - Show quoted text -


Windows 32-bit is a 32-bit os - which means you multiply 2 by itself
32 times, and you get the number of bytes of memory that it can
access. It calculates out to 4294967296, which is the same as 4GB.

By default, Windows 32-bit keeps half of this available memory for its
kernel processes - leaving only 2GB for other programs.

So that is *it*. That is all that Windows 32-bit can see (unless you
use PAE). It has to allocate that memory to all of its processes. They
all have to share that one chunk of memory.

The /3GB switch reduces the amount of memory used by the kernel from
2GB to 1GB, leaving 3GB for other programs.

NOT 3GB for each program. 3GB for ALL other programs together.

Now - if 32-bit Windows can see 4GB of memory directly, imagine how
much 64-bit Windows could see.
18,446,744,073,709,551,616 bytes. Or thereabouts. Lots.

So if you need memory, get off of Windows 32-bit.

Reply With Quote
  1 links from elsewhere to this Post. Click to view. #10  
Old 06-28-2007, 05:57 PM
Database Bot
 
Join Date: Sep 2009
Posts: 1,236,254
Database Administrator is on a distinguished road
Default Re: 2GB limit of memory for Oracle on WIndows 32 bit

On Jun 28, 4:04 pm, zigzag...@yahoo.com wrote:
> On Jun 28, 2:15 pm, sybra...@hccnet.nl wrote:
> > On Thu, 28 Jun 2007 01:42:07 -0700, zigzag...@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...AE/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/lib...4(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.

Reply With Quote
Reply

Thread Tools
Display Modes


LinkBacks (?)

LinkBack to this Thread: http://dbaspot.com/forums/oracle-server/174755-2gb-limit-memory-oracle-windows-32-bit.html

Posted By For Type Date
Help! Tue SGA_MAX too large! Database cannot start! - comp.databases.oracle.server | Google Groups This thread Refback 03-07-2009 05:35 AM
Re: Help! Tue SGA_MAX too large! Database cannot start! This thread Refback 02-21-2009 10:43 PM
Re: Help! Tue SGA_MAX too large! Database cannot start! This thread Refback 01-31-2009 03:23 AM
Comunità Forums: ORA-04030 quando lancio un report con lo statspack Post #10 Refback 09-26-2007 07:13 AM

Similar Threads

Thread Thread Starter Forum Replies Last Post
CONSPIRACY? Why are there so many LINUX DISTRIBUTIONS? Database Administrator Unix and OS Discussions 37 05-22-2007 09:55 AM
comp.sys.hp.hpux FAQ Database Administrator hp-hpux 0 07-08-2006 12:38 AM
comp.sys.hp.hpux FAQ Database Administrator hp-hpux 0 02-20-2006 01:31 AM
comp.sys.hp.hpux FAQ Database Administrator hp-hpux 0 02-10-2006 01:28 AM
comp.sys.hp.hpux FAQ Database Administrator hp-hpux 0 12-09-2005 01:30 AM


All times are GMT -4. The time now is 05:44 AM.