Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Usenet -> c.d.o.server -> Re: Utlizing /3GB and /PAE to go beyong 2GB limitaion of WIndows 32 bit

Re: Utlizing /3GB and /PAE to go beyong 2GB limitaion of WIndows 32 bit

From: <>
Date: Tue, 18 Sep 2007 16:25:28 -0700
Message-ID: <>

On Sep 15, 6:08 pm, wrote:
> awe_window_memory
> I am using Windows 2000 Advanced Server and my database version is
> Oracle 32 bit.
> I have read many articles on metalink on using /3GB and /PAE (AWE) on
> metalink. While I understand how memory allocation works, when there
> is only database instance using AWE, it is not clear what happens
> when I have multiple database instances using AWE.
> Let us say I have set awe_window_memory=512M (in bytes) in registery.
> My db_block_buffers * db_block_size = 2GB.
> For one instance, 512M bytes of memory will come from lower 3GB area.
> 1.5GB of buffer cache will come from above 4GB (PAE) area.
> 1. For second database, will additional 512M bytes of memory come from
> lower 3GB area, or is the same AWE memory window (512M) is used for
> both database instances. I know additional 1.5GB buffer cache will
> come above 4GB area, but not clear about lower 3GB area. Will 512M +
> 512M =1024M has been taken from lower 3GB area.
> 2. Another question, how does one monitor how much memory is being
> utilized below 3GB and how much above 4GB. Is there any way to get
> this information from windows tool such as perfmon or using Oracle
> data dictionary views?
> Thanks,

After reading various confusing documents on metalink and talking to Oracle support following are my findings on /3GB and /PAE switch on 32 bit Windows.

  1. One can have any amount of RAM up to 64GB, but only 2GB of it is addressable by application and Oracle instances on the server without / 3GB and /PAE switches. Another 2GB is used by Kernel (so total of 4GB out of 64GB is accessible/addressable). So, yes, every database instance or application can access up to 2GB, but total memory addressable is also 2GB. Therefore, swapping and out of memory errors will happen if every Oracle instance has set large SGA.
  2. If one uses /3GB switch, application and Oracle can address up to 3GB (instead of 2GB). Kernel uses only 1GB. Rest is same as in 1.
  3. If /PAE switch is on, then memory above 4GB is accessible to Oracle, i.e., up to 64GB memory is addressable. However, one can only place database buffers in PAE memory (addressable between 4GB and 64GB). Everything else, shared pool, java pool, pga etc is still limited to 2GB (or 3GB if /3GB switch is on). So same restrictions as in 1 and 2 apply for multiple database instances.
  4. If both /3GB and /PAE are set, only 16GB (instead of 6GB) can be addressed by Oracle.
  5. PAE memory can be used by multiple database instances. For example, if instance 1 has 4GB of buffer cache, instance 2 12GB, total PAE memory used is 16GB. PAE memory is not as fast as non PAE memory because a few reditections (memeory mappings) are required.
  6. Each database instance has its own AWE memory window and it comes from lower 3GB memory (i.e. non PAE memory). But memory window size set using a registery variable is same for all database instances. So if registery variable is set to 256M (in bytes), instance 1 will use 256M from 3GB, instance 2 another 256M from 3GB. Shared pool, java pool, pga etc must also fit in 3GB.

Hope this information is useful to others who cannot migrate to 64bit, yet want to go beyond 2GB restriction of 32 bit Oracle. Received on Tue Sep 18 2007 - 18:25:28 CDT

Original text of this message