Приложение Spring Boot - проблема с java .lang.OutOfMemoryError: G C превышен предел накладных расходов - PullRequest
0 голосов
/ 25 марта 2020

У моего приложения SpringBoot есть проблема с java.lang.OutOfMemoryError: GC overhead limit exceeded.

Я вижу журнал, как показано ниже:

  Handler dispatch failed; nested exception is java.lang.OutOfMemoryError: GC overhead limit exceeded.

Кроме того, при работе в приложении процессор очень высок (99%). Я думаю, что это связано с XMX. Итак, как я могу проверить размер xmx, установленный для этого приложения? Или проблема в другом? Заранее спасибо!

1 Ответ

0 голосов
/ 25 марта 2020

У моего приложения SpringBoot есть проблема с java.lang.OutOfMemoryError: GC overhead limit exceeded.

Я вижу журнал, как показано ниже:

Handler dispatch failed; nested exception is 
java.lang.OutOfMemoryError: GC overhead limit exceeded. 

Это распространенная ошибка.

Это означает, что JVM вашего приложения тратит слишком много времени на выполнение уборщик мусора. Обычно это происходит потому, что у вас почти не хватает места, а G C приходится работать все чаще и чаще, чтобы продолжать работу.

Кроме того, процессор очень высокий, когда я работаю в приложении (99%).

Этого следовало ожидать; см. выше.

Я думаю, что это связано с xmx.

Да, это связано с этим.

Одна из возможностей состоит в том, что задача ваша webapp требует, требует больше памяти, чем позволяет параметр -xmx. Увеличение -xmx решит проблему ... пока вы не перейдете к более крупной задаче. На этом этапе вам нужно посмотреть, сможете ли вы оптимизировать использование памяти или купить машину с большим объемом памяти. (Сколько у вас денег в банке?)

Другая возможность - утечка памяти в вашем веб-приложении. Если это проблема, то увеличение -xmx не решит проблему. Ваше веб-приложение может снова столкнуться с OOME ... хотя это может занять больше времени.

Я предлагаю вам найти и прочитать хорошую статью по устранению утечек памяти. Предположим, что это утечка ... пока вы не найдете явных доказательств того, что это не так.

Так как я могу проверить размер xmx, установленный для этого приложения?

Это зависит от того, как вы запускаете приложение Springboot. Например, в этой статье объясняется, как сделать это с помощью встроенного Tomcat.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...