one of my clients insists on installing a Windows 2003 Entreprise OS on a 32 GB RAM server. My application is a java web application (servlet) mostly reading a datawarehouse. This DWH will be running on Oracle 10g.

What will be the impact of this OS choice ?

It seem from my tests that I cannot assign a heap space bigger than 1.5GB (Xmx) to my JVM. Also, I don't know what the impact on Oracle will be.

What are the pros and cons of this OS choice ? (license cost maybe ?)


PS: our primary advice was Debian (64bits) / Postgresql, but, you know, customer is always right :-)

  • Can you give more details? Is this an x86, x64 or IA-64 server? Jul 22 '10 at 15:50
  • Processors are four Intel Xeon E7420.
    – alci
    Jul 22 '10 at 16:03
  • Is that a 32 bit or 64 bit Windows 2003? You are comparing it with 64 bit Debian. Sounds to me that you are comparing 32 bit to 64 bit rather than Windows to Linux. Jul 22 '10 at 16:09
  • It is a 32 bits Windows 2003. As I understand it, "enterprise" means it is PAE enabled to allow addressing more than 4GB. I'm not comparing Linux to Windows. I'd rather work on Linux, but my customer wants Windows... and Windows 2003 Enterprise (32bits), moreover...
    – alci
    Jul 22 '10 at 16:17
  • "Enterprise" is an edition. I believe the "Standard" edition also supports PAE. PAE allows addressing more than 4 GB of physical memory but it would not have an impact on your (32 bit) Java application. You should use 64 bit Windows 2003. Jul 22 '10 at 21:55

"PAE does not change the size of the virtual address space, which remains at 4 GB. It changes only the actual RAM that can be addressed by the processor." (http://support.microsoft.com/kb/2267427/en-us) The way Windows arranges memory further restricts the practical maximum heap size to about 1.5GB because shared libraries are loaded at the 2GB limit and the /3GB switch, even if available, does not help much. With the /3GB switch max heap size is 1.7 - 1.8 GB: http://www.ibm.com/developerworks/java/library/j-nativememory-linux/.

  • Also keep in mind that PAE works by changing the 4GB that the processor can address at any given time. There's a penalty to switching too, so if you're using more than about 8 or 12 you really start to notice the switching lag and memory access gets slower with the constant flipping.
    – Chris S
    Jul 23 '10 at 19:05

I am a bit rusty on this (8i and 9i was my forte), but on Oracle, you used to be able to use the extra memory that was available via PAE. It was not available to the Oracle process space (per the normal 32 bit limitation), but it could be used for the Buffer cache.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.