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