1

We've two server migration projects recently from Solaris to RedHat Enterprise on VM. They are both J2EE applications running on OC4J 10.1.3.5

One interesting phenomenon we found was that the OC4J JVM instances running on Linux will actually occupy more heap than the one on Solaris. For example one of our applications will consume only 30 - 40MB of heap size on Solaris when freshly started, while on Linux, it already consumed 400MB on start up, which is 10 times difference. Similar case occurred on the other application.

We've checked that all the JVM versions and start up arguments are the same.

I've searched around and found this similar question: Difference betweeen jvm on linux and solaris machines

However, I could not find any technical articles on this issue, will in be due to some configuration problem on Linux machine rather than JVM itself?

We are using JDK 1.6.0_38-b05 64bit

Edit: Here are the JVM start up arguments: -server -Xms2560M -Xmx2560M

Community
  • 1
  • 1
am5a03
  • 506
  • 7
  • 24
  • 2
    Do the servers have different memory size? The JVM looks at this and decides about a proper initial size. - Also, tell us what happens if you restrict the linux JVM to -Xmx64m – Ingo Dec 10 '13 at 15:15
  • 1
    It depends greatly on the JVM implementation. Are you using the Oracle/Sun JVM on both? – CodeChimp Dec 10 '13 at 15:16
  • Is that working set size (RSS), or virtual address space? The latter will not matter, I think. – Raedwald Dec 10 '13 at 15:22
  • It would help if we saw the JVM startup parameters. They may match between servers, but as @Ingo pointed out, there are defaults. So if you don't specify an initial size, for example, the default will vary between servers. – Brandon Dec 10 '13 at 15:33
  • I have seen similar behavior when moving from another Linux distribution (do not remember which) to Redhat Enterprise Linux 6. I guess you should ask the RedHat support people. – jeroen_de_schutter Dec 10 '13 at 15:34
  • @Ingo We've set the -Xms and -Xmx arguments explicitly to 2560M. The start up argument in JVM are -server -Xms2560M -Xmx2560M – am5a03 Dec 10 '13 at 16:25
  • Are native libraries involved ? What commands are you using to measure the memory usage ? What says `pmap -x java_pid` on both OSes ? – jlliagre Dec 10 '13 at 20:41

0 Answers0