У меня есть сервер Tomcat6, работающий на Debian squeeze, на нем работают 4 веб-приложения и сервер ActiveMQ в JVM.
Он работает около года с теми же настройками памяти, с openjdk-6. Все отлично заработало, никаких проблем.
Теперь по разным причинам мне нужно попробовать Sun JDK.
Итак, я установил Sun jvm со стандартным apt-get
apt-get install sun-java6-bin и переключился с помощью
обновление-Java-альтернативы -s Java-6-солнце
Однако, когда я запускаю tomcat, у меня заканчивается память, сервер даже не запускается! Если я вернусь к openJDK, все снова будет работать нормально.
У меня раньше не было проблем с памятью на этом сервере, поэтому мне кажется странным, что сервер внезапно не запускается с Sun JDK.
Кто-нибудь знает, почему это могло произойти? Я что-то пропустил?
Я, естественно, установил размеры кучи и т.д. в tomcat. В настоящее время работает с:
-Xms256m -Xmx1024m
Что, как уже упоминалось, работает в openSDK, outofmemory в sun-jdk ...
РЕДАКТИРОВАТЬ: сервер 64-разрядный, openJDK и Sun - 1.6.0, обе 64-разрядные JVM.
собираюсь ответить на свой вопрос, так как я понял это в конце:
Как оказалось, мы установили xmx и xms, однако мы НЕ установили -XX: MaxPermSize.
По умолчанию это 256 МБ в openJDK, но только 128 МБ в SunJava. Вот что вызвало это при переключении.
После ввода -XX: MaxPermSize = 256m в catalina.sh все работает нормально в обеих JVM!