Skip to Main Content

Infrastructure Software

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

Memory Limit for 32-bit RedHat AS 4 Server

Fahd.MirzaOct 24 2009 — edited Oct 25 2009
Hello,
I am running 32-bit Redhat Enterprise Linux AS 4 on a machine, which has 16 GB of RAM. My questions are please:

1- Is it true that the total memory the 32-bit RHEL AS 4 could access if 4GB, and my remaining 12 GB is wasted?

2- Is there a way that I could use the 12 GB Memory?


Thanks and regards

Comments

506787
The memory limits for RHEL4 are depended on the actual kernel you are using.

The theoretical limit is 2^32 = 4G
With the SMP kernel you get 3G of process space, and 1G of kernel space. This means a user process can use up to 3G
With the hugemem kernel the memory usage is "tricked", and there is 4G of user space, and 4G of kernel space (thus it capable of using 8G in total)

The chipmakers have identified the need for the usage of more memory. It's done using PAE, Physical Address Extention.
Put simplistic, there are an extra set of bits added to the memory bus, 4 bits extra, so the theoretical addressable space is raised to 2^36 = 64G

The 32-bit limit of 4G is not limited to linux, windows has exactly the same issue (and the same workarounds), but windows has 2G of user space and 2G of kernel space by default.

It is possible to use the "extra" memory above 4G by using software products which are capable of using PAE memory.
The oracle database is capable, the parameter is called USE_INDIRECT_DATA_BUFFERS, and places the buffercache (ONLY the buffercache, so not the entire SGA) in PAE memory.
Fahd.Mirza
Fritz, thanks for the answer.

I am actually planning to install Oracle Application Server 10g on 32 bit linux. I want to give Oracle HTTP Server as much memory as possible. Is there a way I could do that in this scenario?

Thanks
Tommy.Reynolds-Oracle
1) If you install one of the PAE kernels, you will use all available physical memory.

[http://www.redhat.com/rhel/compare/]

The distribution contains all the kernels you will need.

2) In terms of a running program, also known as a process, RHAS4 has two kinds of kernels:

2a) "Hugemem" kernels allow applications to have a full 4GB address space.
2b) All other kernel without "hugemem" in the name limit applications to only 3GB address space.

So, if you never will want to upgrade to RHEL5/OEL5 or later you can use the "hugemem" kernels so that you can run larger applications or have bigger SGA's.

However, the kernel team has decided that the "hugemem" feature was just too cumbersome to implement widely and has discontinued that feature after the RHEL4/OEL4 series. But this feature works just fine in RHEL4/OEL4; the kernel developers just figured everyone who needed "bigger" would just switch to 64-bit machines.

Cheers
Fahd.Mirza
TommyReynolds,

Please tell me is the RHEL 5 64-bit is stable for production? Also do you have idea that whether Oracle has released 64-bit version of Oracle Application Server 10g, because I don't find it on OTN Downloads area.

Thanks and regards
506787
As tommy said, just remember: 32bit means there's approx. 3G for userspace. That's it.
as I said, some applications can use PAE memory, but that requires specialised setup.

I do not know your expertise in the application server, and the type of application it is going to serve, and the number of users, but:
-the http server has a modest memory footprint. up to a 1000 concurrent connections can easily be served with a normal 32 bit configuration.

but if you got an application, there is a very big chance it won't run in the http server. there is a big chance it will run in java (in the OC4J container). if that's the case, apache/the http server acts as a proxy between the client and the OC4J server.

an normal application doesn't need extensive memory, and in general you could say that if an application does require that, it's just badly written.
1 - 5
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Nov 22 2009
Added on Oct 24 2009
5 comments
3,942 views