Я получаю сообщение "Java HotSpot(TM) 64-Bit Server VM предупреждение: Исключение java.lang.OutOfMemoryError при отправке сигнала SIGTERM обработчику" ошибка в tomcat

У меня есть tomcat веб-приложение на VPS, и tomcat иногда (примерно раз в месяц) аварийно завершает работу со следующей ошибкой в ​​catalina.out:

Предупреждение Java HotSpot™ 64-Bit Server VM: Исключение java.lang.OutOfMemoryError при отправке сигнала SIGTERM на обработчик - может потребоваться принудительное завершение работы виртуальной машины.

Вот некоторые подробности о моей конфигурации:

  • VPS: debian-5.0-x86_64

  • Оперативная память: 2,5 ГБ,

  • виртуальных процессоров: 8

  • Жесткий диск: жесткий диск 60 ГБ — 70% свободно

  • Tomcat 7.0

  • версия java:

    версия java "1.6.0_18"
    Среда выполнения OpenJDK (IcedTea6 1.8.13) (6b18-1.8.13-0+squeeze1)
    64-разрядная виртуальная машина сервера OpenJDK (сборка 14.0-b16, смешанный режим)
    
  • Параметры Java: -Xms512m -Xmx1024m

У меня также есть Apache-PHP на этом сервере.

Я отслеживаю загрузку сервера с помощью Munin, и он показывает, что загрузка памяти и ЦП всегда стабильна, и перед сбоем не было никакого увеличения.

Я также регистрирую использование памяти java через класс java.lang.Runtime, и это показывает, что jvm всегда использует память max200Mb, и перед сбоем не было увеличения. Последний журнал перед сбоем был 40 секунд назад, и в это время использовалась память: 152 МБ.

Мое веб-приложение также запускает 6-7 потоков, которые собирают данные из разных общедоступных API. Эти потоки запускаются, когда запускается tomcat, и они всегда работают с периодическими спящими режимами.

Скажите, пожалуйста, почему он вылетает? Как найти причину?

8
задан valiano 7 August 2017 в 07:26
поделиться