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 ...
![]() |
| | LinkBack (4) | Thread Tools | Display Modes |
#1
| |||
| |||
| 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. |
|
#2
| |||
| |||
|
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 |
|
#3
| |||
| |||
|
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 |
|
#4
| |||
| |||
|
On Jun 27, 12:01 pm, BD > 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. |
|
#5
| |||
| |||
|
On Jun 28, 3:42 am, zigzag...@yahoo.com wrote: > On Jun 27, 12:01 pm, BD > > > > > 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. |
|
#6
| |||
| |||
|
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 |
|
#7
| |||
| |||
|
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). |
|
#8
| |||
| |||
|
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 |
|
#9
| |||
| |||
|
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. |
#10
| |||
| |||
|
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. |
![]() |
« Previous Thread
|
Next Thread »
| 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 | |
| ||||
| 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.





Linear Mode
