Недавно у нас было два проекта миграции серверов с Solaris на RedHat Enterprise на виртуальной машине. Оба они являются приложениями J2EE, работающими на OC4J 10.1.3.5.
Одно интересное явление, которое мы обнаружили, заключалось в том, что экземпляры JVM OC4J, работающие в Linux, на самом деле занимают больше кучи, чем экземпляры в Solaris. Например, одно из наших приложений будет потреблять только 30-40 МБ размера кучи в Solaris при новом запуске, в то время как в Linux оно уже потребляет 400 МБ при запуске, что составляет 10-кратную разницу. Аналогичный случай произошел с другим приложением.
Мы проверили, что все версии JVM и аргументы запуска одинаковы.
Я искал и нашел этот похожий вопрос: Разница между jvm в Linux и машины Solaris
Однако я не смог найти никаких технических статей по этому вопросу, может быть, это связано с какой-то проблемой конфигурации на машине с Linux, а не с самой JVM?
Мы используем JDK 1.6.0_38-b05 64bit
Изменить: вот аргументы запуска JVM: -server -Xms2560M -Xmx2560M
pmap -x java_pid
в обеих ОС? - person jlliagre   schedule 11.12.2013