#java #spring-boot #memory-leaks #out-of-memory #micrometer
#java #весенняя загрузка #утечки памяти #нехватка памяти #микрометр
Вопрос:
Я работаю над сервисом springboot, который использует micrometer для получения статистики. Но служба получает OutOfMemoryError. Мне нужна помощь в определении того, где происходит утечка памяти.
Поскольку это большой сервис, я не могу просмотреть весь код.
Какие-либо показатели, которые я могу добавить, чтобы увидеть, какой сервис / класс / объект создает проблему?
Не удается поделиться кодом с другими сторонними сервисами.
Комментарии:
1. Сначала средство проверки кода (SonarQube или что-то еще); это будет наиболее полезно в целом. ООМ также может быть результатом бесконечной рекурсии или чего-то еще. Но тогда была бы четкая трассировка стека. Можно выполнить дамп оставшихся объектов кучи.
2. Эй, я не смогу поместить код в какие-либо другие сторонние сервисы. можете ли вы подробнее объяснить «можно выполнить дамп оставшихся объектов кучи». Как это поможет в определении кода ошибки
3. Вы могли бы посмотреть, какие объекты сохранились. Также было бы полезно установить Java Melody, но проще всего использовать средство проверки стиля кода для поиска ошибок (FindBugs, SonarLint и тому подобное). В IntelliJ IDEA (например, Community Edition) есть хороший анализ кода. Возможно, это что-то очевидное, и улучшения кода не повредят.