Насколько дороги дампы потоков Java (Solr)?

#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?