TGViewer
Чашечка Java Чашечка Java @a_cup_of_java · 8.37K subscribers
Post #7107 1.45K
Поиск утекающих ресурсов в Java приложении

Привет, сообщество! Меня зовут Данила, я ведущий разработчик в БФТ-Холдинге.
Я расскажу вам о нашем опыте борьбы с утечкой памяти в сервисе авторизации. Как наша команда столкнулась с критической проблемой, которая приводила к сбоям сервиса, и нам пришлось провести исследование, чтобы найти и устранить причину утечки ресурсов.

Как все начиналось: из бэклога прилетела задача с формулировкой – при эксплуатации authz-server на контуре PROD наблюдается активная утечка памяти, которая приводит к прекращению работы сервиса по причине достижения лимитов по RAM.

Контур PROD уже звучит грозно, приоритет критический, надо разбираться. После недолгого анализа исходников выяснено: обычный Spring Boot сервис c gRPC библиотекой, который выполняет 2 функции – поход в базу за данными пользователей (ФИО и роли) и проверку наличия доступа к конкретному ресурсу для конкретного пользователя. Первая функция тривиальная – «дай по id такого-то пользователя, если нет, то скажи, что его нет». Вторая функция немного сложнее: нужно вызвать метод сторонней библиотеки и передать в него 5 параметров. И всё, но на PROD график использования heap вот такой:


Читать: https://habr.com/ru/companies/bft/articles/884582/?utm_campaign=884582

@a_cup_of_java | Другие наши каналы
More from @a_cup_of_java
  1. Oct 6, 2026Почему JNI-ссылки могут привести к падению JVM JNI отдаёт нативному коду дескриптор Java-о…
  2. Oct 6, 2026Spring переводит патч-релизы на единый Patch Thursday Регулярные патч-релизы проектов Spri…
  3. Oct 2, 2026JDK 26: измеряем затраты CPU на сборку мусора JDK 26 добавляет MemoryMXBean.getTotalGcCpuT…
  4. Oct 1, 2026Как измерить экономию памяти от компактных заголовков в Java 27 В Java 27 HotSpot по умолч…
  5. Oct 1, 2026Spring Boot 4 и BoxLang: как сохранить CFML-шаблоны при миграции BoxLang Spring Boot Start…
  6. Oct 1, 2026JDK 25 и G1: почему Arrays.fill замедлился в 265 раз В JMH-тесте на Apple M4 Max заполнени…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →