Ich Ausführung jstack Befehl-Thread-Dumps auf bestimmtes Intervall für die Aufnahme.
Ich habe beobachtet, dass, wann immer jstack ausgeführt wird, werden alle Threads auf Zielprozess zu stoppen. Ich kam zu diesem Schluss, nachdem meine log4j 2 Scheite auf, wo ich keine Protokollierung für die Dauer von jstack Läufen gefunden.
Kann mir jemand sagen, tut jstack aussetzt / stoppt alle Fäden in Zielprozess?
Unter dem Stack-Trace von jedem Thread (auch nur ein) bringt alle Fäden Sicherungspunkt. Sie können sehen, mit
Dies druckt jedes Mal die JVM aus irgendeinem Grund gestoppt (nicht nur GC)
-XX:+PrintGCApplicationStoppedTime
Dies druckt die Statistiken einschließlich der Grund für den Anschlag.
-XX:+PrintSafepointStatistics -XX:PrintSafepointStatisticsCount=1
Es gibt einen Plan einen Thread spezifischen Anschlag einführte jedoch jstack
jeden Thread zu Sicherungspunkt benötigt.