一、JVM GC
1、JVM线程简介
在Thread Dump中,有一些 JVM内部的后台线程来执行,譬如垃圾回收或者低内存的检测等等任务,这些线程往往在 JVM初始化的时候就存在,如下所示:
1. HotSpot VM Thread
被HotSpot VM管理的内部线程为了完成内部本地操作,一般来说不需要担心它们,除非CPU很高。
"VM Periodic Task Thread" prio=10tid=0xad909400 nid=0xaed waiting on condition
2. HotSpot GC Thread
当使用HotSpot parallel GC,HotSpot VM默认创建一定数目的GC thread。
"GC task thread#0 (ParallelGC)"prio=10 tid=0xf690b400 nid=0xade runnable
"GC task thread#1 (ParallelGC)"prio=10 tid=0xf690cc00 nid=0xadf runnable
"GC task thread#2 (ParallelGC)"prio=10 tid=0xf690e000 nid=0xae0 runnable
……
当面对过多GC,内存泄露等问题时,这些是关键的数据。使用native id,可以将从OS/Java进程观测到的高CPU与这些线程关联起来。
3. JNI global references count
J