Tomcat 8.5 Java 8 Ошибка нехватки памяти после введения Redis для управления сеансамиJAVA

Программисты JAVA общаются здесь
Гость
Tomcat 8.5 Java 8 Ошибка нехватки памяти после введения Redis для управления сеансами

Сообщение Гость »


У меня есть приложение Java 8, развернутое на Tomcat 8.5, которое работало без сбоев до недавнего времени, когда Tomcat внезапно остановился. Изучив логи, я обнаружил ошибку «недостаточно памяти»:

Java вызывает oom-killer: gfp_mask=0x100dca(GFP_HIGHUSER_MOVABLE|__GFP_ZERO), order=0, oom_score_adj=0 До сих пор приложение функционировало правильно, и единственным серьезным изменением было введение Redis для управления сеансами пользователей с использованием библиотеки Redisson. Redis устанавливается на тот же физический сервер, где находится приложение Tomcat. Приложению выделяется большая часть доступной памяти, оставляя на все остальное примерно 2 ГБ.

В первый день сбоя я заметил, что сборщик мусора освобождает память, но jvm все равно вылетел.
Изображение



Изображение


На второй день использование кучи Old Gen было таким:


Изображение


А это была деятельность GC:


Изображение


Похоже, что крупных сборок мусора не было, несмотря на то, что память приближалась к своему пределу.

Я пытаюсь понять, связана ли эта проблема с разделением ресурсов сервера между Tomcat и Redis, или это потенциальная утечка памяти в приложении. Мы будем очень признательны за любые идеи или предложения о том, как диагностировать и решить эту проблему.

Изображение

Вернуться в «JAVA»