#java #solr
#java #solr
Вопрос:
В рамках некоторого текущего обслуживания мы регулярно собираем дампы потоков для всех потоков в JVM с интервалом в одну минуту. (например. curl http://localhost:8983/solr/admin/threaddump.jsp
)
Каковы производительность / другие негативные последствия продолжения этой практики на неопределенный срок?
Ответ №1:
Как правило, дампы потоков JVM дешевы и не оказывают большого влияния, независимо от приложений. С другой стороны, Jmap -histos может сильно влиять на производительность. Я работаю в maintance, мы делаем много дампов потоков, никогда не видел прямого сбоя, вызванного демпингом потока.
Единственная проблема с запуском дампов раз в минуту — слишком много информации.
Вы добавляете дамп в отдельный файл? По моему опыту, вам нужно просматривать дампы с течением времени, чтобы уловить такие вещи, как конфликт временных блокировок.
Комментарии:
1. Я думаю, что на данный момент мы просто планируем анализировать и записывать количество потоков (и, возможно, типы) в файл журнала и предупреждать о значительных отклонениях.
2. Следите за потоками, ожидающими блокировки, если у вас возникнут серьезные проблемы с блокировкой, вот как это определить. Конечно, некоторые конфликты блокировок являются нормальными. Приветствия.
3. У нас есть воспроизводимый сбой jvm, когда 5-минутный сброс потока периодически. Через один день, не более двух, сбой процесса jvm. В процессе есть некоторые утечки потоков, которые могут доходить до 3500. Но без threaddump он хорошо работает с утечкой. Может ли утечка потока привести к сбою JVM из-за threaddump?