2013-03-26 6 views
0

У нас было 5 приложений по линейному (Ubuntu 10.04 32 бит) 1G RAM. Недавно мы перенесли одно из приложений из этого linode в другое из 512M. Приложение построено на Java EE и на старом сервере работает довольно стабильно. На новом сервере, однако, tomcat (версия 6 на обоих серверах) периодически вылетает без каких-либо журналов. Единственное отличие нового сервера заключается в том, что мы используем nginx в качестве веб-сервера против apache2 на старом, а новый сервер использует Ubuntu 12, 64 бит. Нет никаких оснований сомневаться в утечке памяти, потому что приложение хорошо себя ведет на старом сервере. Существуют ли какие-либо модификации tomcat для предотвращения подобных сбоев. Я сомневаюсь, что причиной является загрузка из-за трафика (поскольку новый сервер имеет более низкую ОЗУ), потому что даже в середине ночи, когда около 10 одновременных пользователей, tomcat все еще падает. Любое понимание этой проблемы будет оценено по достоинству.Постоянные сбои Tomcat6

Я проверил использование ОЗУ, а tomcat постоянно занимает около 60% всей памяти и внезапно падает и переходит на 0. Я использовал сценарий bash и запускаю его как задание cron каждые 5 минут на новом сервере чтобы проверить, отключен ли tomcat, и перезапустить его автоматически. Может ли это быть причиной? Сценарий указан ниже

if [ "$(/etc/init.d/tomcat6 status)" == " * Tomcat servlet engine is not running." ]; then /etc/init.d/tomcat6 start; fi 

Обратите внимание, что я не являюсь экспертом по конфигурации сервера. Я могу просто настроить сервер для установки и выполнения требуемых действий.

+0

Являются ли JVM идентичными? Являются ли их настройки для xmx, permgen ... одинаковыми? –

+0

Нет ... поскольку на сервере новый сервер меньше, я установил значения на половину tht 128 м и 256 м против 256 м и 512 м на старом сервере. –

+0

Возможно, убийца linux OOM убивает вашего кота. Вы должны проверить syslogs для любых необычных подключений во время сбоев. Также посмотрите на версии jvm на обеих машинах. –

ответ

0

Вы перенесли свое приложение из 32-разрядной JVM Hotspot в 64-разрядную JVM Openjdk. А на новом сервере у вас меньше оперативной памяти.

Сначала я попытался установить одну и ту же 32-битную JVM Hotspot на новый сервер и посмотреть, все еще происходят сбои. Если они это сделают, я бы добавил больше памяти и соответствующим образом скорректировал xmx и т. Д.

0

Я обновил ОЗУ до 1 ГБ, понизил до Ubuntu 12, 32 бит, переустановил JVM 32 бит, и теперь сервер работает как шарм. Мне не удалось обнулить основную причину, но наиболее вероятной причиной может быть либо 64-битная ОС, либо 64-разрядная JVM, которая потребляет слишком много памяти. Спасибо за вашу помощь.

Смежные вопросы