Назад | Перейти на главную страницу

Tomcat OutOfMemory после переключения JVM

У меня есть сервер 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!