LINUX.ORG.RU

Apache Tomcat и SIGABRT

 , ,


0

1

Ситуация вкратце:
Есть веб-сервис на Apache Tomcat + Spring Boot с не самым большим показателем rps и есть примитивный вотчдог, что смотрит на наличие бинда к порту - ss -tupln | grep 8080 | wc -l, и если что посылает мне уведомление и сам перезапускает сервис. В последнее время я стал получать не одно сообщение за день, что этот веб-сервиc был перезапущен. При этом никаких ошибок OOM ни в логе Tomcat, ни в логе ядра я не нашел. Дампов JVM так же нет. Но просмотрев аудит я обнаружил это - type=ANOM_ABEND msg=audit(1744781861.055:302078): auid=1003 uid=1003 gid=1003 ses=19065 pid=5866 comm="http-nio-8080-e" reason="memory violation" sig=6. При этом по логу Tomcat видно, что он продолжает выполнять фоновые задачи.

Ситуация с памятью:

$ free -h
total        used        free      shared  buff/cache   available
Mem:           3.7G        2.1G        543M         17M        1.0G        1.3G
Swap:          3.2G        221M        3.0G

$ grep -i "memory" /proc/30387/limits
Max locked memory         65536                65536                bytes

По итогу сумел договориться с админами на 256 Мб для Max locked memory. Но ошибки не прекратились. Сейчас включил - ulimit -c unlimited и надеюсь, что создастся дамп ядра.

Подскажите с чего начать решение проблемы, что читать? Кто вообще вызывает SIGABRT?

Флаги JVM:
-Xmx1024m -Xms768m -XX:MaxMetaspaceSize=256M -XX:MetaspaceSize=128M -XX:+TraceClassLoading -XX:+TraceClassUnloading -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${HOST_APP_DIR}/oom_heapdump.bin -XX:+ExitOnOutOfMemoryError -XX:+CrashOnOutOfMemoryError.



Последнее исправление: BratecLis (всего исправлений: 1)

CrashOnOutOfMemoryError - вероятно этот флаг вызывает. Памяти не хватает. Надо установить больше памяти или оптимизировать приложение. В логах должен быть OutOfMemoryError где-то перед крашем, можно посмотреть, если сильно интересно.

Можно попробовать -Xmx1024m поменять на -Xmx2000m

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 2)
Ответ на: комментарий от vbr

Спасибо за ответ и совет! Я первый раз такое вижу, но в логах Tomcat нет OOM. Директория дампов то же пуста. Приложение не падает, только перестает отвечать на HTTP-запросы (очевидно, ведь http-nio-8080-e умер), до тех пор пока вотчдог не заметит и не перезапустит. Не давно еще Metaspace места не хватало, но в этом случае был дамп. По идее Metaspace должен без проблем увеличиваться, но скурвился на 69 Мб.

BratecLis
() автор топика