Попытка диагностировать некоторые странные ошибки Tomcat (7.0.21
) и / или JVM на 64-битной машине Linux (CentOS).
Я тестирую нагрузку на наше серверное приложение и пытаюсь использовать его с 100KСообщения.Запустил jvisualvm
и все время следил за кучей.Все выглядело замечательно * (см. Ниже), пока я не получил около 93K обработанных сообщений, а затем Tomcat просто умер.Выполните ps
на номере PID Tomcat, чтобы подтвердить, что он мёртв.
Вплоть до этого сбоя:
- Тест нагрузки продолжался около 90 минут;должен был закончиться вскоре после этого, так как мы были на 93K / 100K)
- Процессор держался крепко около 45%
- Использованная куча была около 2 ГБ (плюс или минус куча после GC), но размер кучи выросот 4 ГБ до
MAX_HEAP
примерно через 30 минут - Загрузка / выгрузка классов велась нормально
- Дампы потоков были нормальными
Нигде в коде сервера нет вызововна System.exit()
- так что мы можем исключить это прямо (и да, я дважды проверил !!!).
Я не уверен, что это сбой Tomcat или JVM ( какмне сказать? ).И даже если бы я знал, я не могу найти никаких указаний на то, что пошло не так:
- Все журналы серверного приложения просто останавливаются без каких-либо сообщений об ОШИБКАХ (даже при том, что мы ведем журналирование универсально установленнымдо DEBUG и выше)
- Tomcat
catalina.out
и уважаемые localhost_access_*
файлы просто останавливаются без какой-либо информации
Я слышал, что Tomcat может регистрировать coredump, когда онно не уверен, как это сделать, и онлайн-примеры не очень помогают.
Как бы SO поступил так, чтобы диагностировать это?Какие шаги я должен предпринять, чтобы начать исключать все возможные факторы?
Заранее спасибо!