инструменты/java/анализатор thread dump
// javanew

анализатор thread dump

разбор вывода jstack — состояния тредов, дедлоки, цепочки блокировок

  // browser
анализ появится здесь

// о инструменте

Thread dump Java — снимок состояний всех тредов JVM-процесса в конкретный момент, создаваемый через jstack, kill -3 или JConsole. Он фиксирует имя, OS thread ID, Java-состояние (RUNNABLE, BLOCKED, WAITING, TIMED_WAITING), стектрейс и блокировки каждого треда. Инструмент парсит вывод jstack в структурированное представление со сводкой по состояниям, обнаружением дедлоков и анализом цепочек блокировок.

// когда использовать

  • Диагностировать дедлок в продакшен-JVM, выявив циклическую зависимость блокировок
  • Найти треды в BLOCKED для поиска узких мест синхронизации в synchronized-блоках
  • Выявить CPU-потребляющие треды, сопоставив RUNNABLE-треды с выводом top -H
  • Сравнить количество тредов до и после нагрузки для обнаружения утечек тредов

// faq

Как сгенерировать thread dump?
Выполните jstack <pid> в терминале или Ctrl+Break в Windows JVM. В контейнерах: kubectl exec <pod> -- jstack 1. Также можно через JMX, VisualVM или SIGQUIT процессу.
Чем BLOCKED отличается от WAITING?
BLOCKED — тред ждёт захвата монитора (synchronized-блока), удерживаемого другим тредом. WAITING/TIMED_WAITING — тред добровольно приостановлен через Object.wait(), Thread.sleep() или LockSupport.park() и не конкурирует за блокировку.
Можно ли обнаружить дедлоки?
Да. Анализатор автоматически выявляет циклы дедлоков. Вывод jstack также содержит секцию "Found one Java-level deadlock" при наличии дедлока.
// история
Pro Облачная синхронизация — подробнее
операций пока нет