[CentOS] CENTOS 4.7 or 5.2 32 bits O.S. for ORACLE DB server??

Warren Young warren at etr-usa.com
Fri Jan 16 20:45:21 UTC 2009

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?

More information about the CentOS mailing list