VM Threads,专门用来执行一些非凡的VM Operation,比方分派GC,thread dump等,这些工作,都须要整个Heap,以及所有线程的状态是静止的,统一的能力进行。所以JVM引入了平安点(Safe Point)的概念,想方法在须要进行VM Operation时,告诉所有的线程进入一个静止的平安点。

须要进入平安点的vm operation
1:JIT相干,比方Code deoptimization, Flushing code cache ;
2:Class redefinition (e.g. javaagent,AOP代码植入的产生的instrumentation) ;
3:Biased lock revocation 勾销偏差锁 ;
4:Various debug operation (e.g. thread dump or deadlock check);
5:gc (次要是yang gc 和并发gc中的标记节点)

查看stw耗费的工夫以及触发的起因jvm参数
-XX:+PrintGCApplicationStoppedTime -XX:+PrintGCApplicationConcurrentTime -XX:+PrintSafepointStatistics -XX: PrintSafepointStatisticsCount=1 -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=/dev/shm/vm.log