we plan to setup our ORACLE database server (32 bits DB) and use dell r900 server. This server can put up to 128GB RAM.
We are thinking use 32 bits CENTOS 4.7 or 5.2. My concern about CENTOS 5.2 is it only support up to 16 GB RAM on 32 bits O.S.
Any suggestion?
______________________________________________________________________________________________________ 付費才容量無上限?Yahoo!奇摩電子信箱2.0免費給你,信件永遠不必刪! http://tw.mg0.mail.yahoo.com/dc/landing
mcclnx mcc wrote:
we plan to setup our ORACLE database server (32 bits DB) and use dell r900 server. This server can put up to 128GB RAM.
We are thinking use 32 bits CENTOS 4.7 or 5.2. My concern about CENTOS 5.2 is it only support up to 16 GB RAM on 32 bits O.S.
Any suggestion?
To get beyond 4 GB of RAM with a 32-bit Intel CPU, you have to turn on PAE mode, which is a very ugly hack, invented several years ago now. It dates back to the old Pentium Pro! It was created before inexpensive 64-bit CPUs were available. Systems being built today should not use PAE mode, IMHO. If you need more than 4 GB of RAM today, use a 64-bit OS and applications. That will let you address the full memory capability of that server.
In PAE mode, the system runs a little slower due to the extra overhead of the more complicated memory management scheme, and it can't really address that 16 GB all at once. It's kind of a like the old DOS days when we had 32-bit CPUs but could only address 64 KB of memory at a time, and could only access 640 KB without resorting to PAE-like hacks called EMS and XMS. These workarounds are best consigned to the dustbin of history.
mcclnx mcc wrote:
we plan to setup our ORACLE database server (32 bits DB) and use dell r900 server. This server can put up to 128GB RAM. We are thinking use 32 bits CENTOS 4.7 or 5.2. My concern about CENTOS 5.2 is it only support up to 16 GB RAM on 32 bits O.S. Any suggestion?
To get beyond 4 GB of RAM with a 32-bit Intel CPU, you have to turn on PAE mode, which is a very ugly hack, invented several years ago now. It dates back to the old Pentium Pro! It was created before inexpensive 64-bit CPUs were available. Systems being built today should not use PAE mode, IMHO. If you need more than 4 GB of RAM today, use a 64-bit OS and applications. That will let you address the full memory capability of that server. In PAE mode, the system runs a little slower due to the extra overhead of the more complicated memory management scheme, and it can't really address that 16 GB all at once. It's kind of a like the old DOS days when we had 32-bit CPUs but could only address 64 KB of memory at a time, and could only access 640 KB without resorting to PAE-like hacks called EMS and XMS. These workarounds are best consigned to the dustbin of history.
Not true. The comparison of PAE to EMS/XMS is completely bogus, the technologies aren't alike at all. PAE does *NOT* involve any bank switching; a system using PAE can "address that 16 GB all at once". Comparing PAE to EMS/XMS has the same level of validity as comparing a .NET or Java virtual machine to a shell script interpreter.
http://en.wikipedia.org/wiki/Physical_Address_Extension#Page_table_structures
There is a, usually very small, performance penalty to PAE due to the using a three level verses a two level page directory.
Adam Tauno Williams wrote:
The comparison of PAE to EMS/XMS is completely bogus, the technologies aren't alike at all.
They are alike in that they add an extra layer of indirection to work around the fact that the pointer size cannot change.
PAE does *NOT* involve any bank switching;
I didn't use the term bank switching, but what it does do could well be described by that term.
a system using PAE can "address that 16 GB all at once".
I guess that depends on what you mean by "at once".
PAE doesn't change the fact that pointers are 32 bits, and so can only address a 4 GB span. To access more RAM, the application has to somehow ask the operating system to rejigger the processor's page tables to map memory from a different place in RAM into its virtual memory space.
Consider this:
const unsigned long long GB = 1024 * 1024 * 1024; char* p = (char*)malloc(6 * GB); p += 5 * GB; *p = 0;
It will fail twice on a PAE system. First, malloc() on that system won't be able to give you a 6 GB chunk of continuous RAM. Second, if you replace the malloc() with the OS's nonstandard way of accessing more RAM in PAE mode (mmap() on Linux, different mechanisms on other OSes) the pointer arithmetic will wrap around instead of doing the right thing, so the memory write will go to the wrong place in RAM.
Reboot that same system into a 64-bit OS, and the code above should work, ulimits willing.
http://en.wikipedia.org/wiki/Physical_Address_Extension#Page_table_structures
Quoting from that page:
"The operating system uses page tables to map this 4 GB address space into the 64 GB of RAM, and the map is usually different for each process. In this way the extra memory is useful even though no single regular application can access it all simultaneously."
There is a, usually very small, performance penalty to PAE due to the using a three level verses a two level page directory.
Yes, as I said, "a little slower". The last numbers I heard were in the 2% sort of range; I can see 10% at most. The overhead comes not just from the 3-level indirections, but also from the need to keep remapping the process's VM window into the larger RAM space, and that there's more work to update the page tables on each context switch.
All this aside: you aren't seriously trying to talk this guy into using PAE mode, are you? Are you not, in fact, just being pedantic, yet agree with me on the most important point, which is that he should be using a 64-bit OS and application here?
Warren Young wrote:
All this aside: you aren't seriously trying to talk this guy into using PAE mode, are you? Are you not, in fact, just being pedantic, yet agree with me on the most important point, which is that he should be using a 64-bit OS and application here?
I hope he is not. Based on real world experience with running Oracle RAC on RHEL with 16 CPUs and 16GB memory on a NUMA machine, I would discourage anyone running PAE on systems with much more than 8GB.
Basically, for any RDBMS server, I would go 64-bit even if your machine only had 4GB memory (or 2GB)... almost for sure your database will need more memory sooner rather than later, and 8-16GB memory on a RDBMS isn't that much anymore.
Adam Tauno Williams wrote:
Not true. The comparison of PAE to EMS/XMS is completely bogus, the technologies aren't alike at all. PAE does *NOT* involve any bank switching; a system using PAE can "address that 16 GB all at once". Comparing PAE to EMS/XMS has the same level of validity as comparing a .NET or Java virtual machine to a shell script interpreter.
You need a memory window in the 32bit address area to map >4GB memory to the process. It is all about the page tables and remapping, that is true, but you can not just like that address the 16GB (or up to 64GB) memory all at once.
mcclnx mcc wrote:
we plan to setup our ORACLE database server (32 bits DB) and use dell r900 server. This server can put up to 128GB RAM.
We are thinking use 32 bits CENTOS 4.7 or 5.2. My concern about CENTOS 5.2 is it only support up to 16 GB RAM on 32 bits O.S.
Any suggestion?
I would not use CentOS at all if for anything else than Oracle won't support it. Oracle linux is a clone of RHEL and I believe is pretty cheap, otherwise RHEL 5 Advanced.
Even Oracle SE One seems to be roughly $5800 for a license. It's crazy to try to save a couple hundred bucks a month for something as important as an Oracle database.
Also for sure go 64-bit if your going with an R900. I'd be surprised if Oracle even had a 32-bit version anymore.
Oracle SE(not SE One) is a great value compared to Oracle EE, I used both at my last company and SE was certainly a better product for the money. Though I did miss being able to use EM. Oracle EE only for those who have bottomless pockets.
Unless your using a really old version of Oracle for some reason, otherwise I assume your using at least 10Gr2 or 11G.
nate
R P Herrold wrote:
On Fri, 16 Jan 2009, nate wrote:
I would not use CentOS at all if for anything else than Oracle won't support it. Oracle linux is a clone of RHEL and I believe is pretty cheap, otherwise RHEL 5 Advanced.
ummm .. a recent UBL was a rebuild of CentOS SRPMs
Doesn't matter if even the RPMS are exactly the same, at least to me. Use something the vendor will support for a product that costs as much as Oracle does, especially if the additional costs are minimal.
Unless Oracle supports CentOS these days, it's been about a year since I used Oracle.
Did a bunch of searches and couldn't find the list of supported linux versions and patch levels.
nate