Однажды наше веб-приложение на Java загружается до 100%.Перезапуск решает проблему, но не проблему, потому что спустя несколько часов после того, как проблема вернулась.Мы подозревали бесконечный цикл, введенный новой версией, но мы не внесли никаких изменений в код или на сервер.
Нам удалось найти проблему, выполнив несколько дампов потока с помощью kill -QUIT и просмотреви сравнивая все детали потока.Мы обнаружили, что один стек вызовов потоков появляется во всех дампах потоков.После анализа было условие цикла while, которое никогда не сбрасывалось для некоторых данных, которые регулярно обновлялись в базе данных.
Анализ нескольких дампов потока веб-приложения действительно утомителен.
Итакзнаете ли вы какой-нибудь лучший способ или инструменты, чтобы найти такую проблему в производственной среде?