[admin@New-OperSys-01 ~]$ jstack $pid | grep -A 50 55e7
"GC task thread#1 (ParallelGC)" os_prio=0 tid=0x00007f9ec0020000 nid=0x55e7 runnable 

"GC task thread#2 (ParallelGC)" os_prio=0 tid=0x00007f9ec0021800 nid=0x55e8 runnable 

"GC task thread#3 (ParallelGC)" os_prio=0 tid=0x00007f9ec0023800 nid=0x55e9 runnable 

"GC task thread#4 (ParallelGC)" os_prio=0 tid=0x00007f9ec0025800 nid=0x55ea runnable 

"GC task thread#5 (ParallelGC)" os_prio=0 tid=0x00007f9ec0027000 nid=0x55eb runnable 

重点关注一下几列:
YGC:年轻代垃圾回收次数
YGCT:年轻代垃圾回收消耗时间
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间

可以看到,除了 0x4b49 线程是正常工作线程,其它都是 gc 线程。

此时怀疑:是频繁 GC 导致的 CPU 被占满。

[admin@New-OperSys-01 ~]$ jcmd $pid GC.class_histogram |head -n 10
21986:

 num     #instances         #bytes  class name
----------------------------------------------
   1:       6816409      654375264  org.apache.xmlbeans.impl.store.Xobj$AttrXobj
   2:       4560939      437850144  org.apache.xmlbeans.impl.store.Xobj$ElementXobj
   3:       8600125      357173616  [C
   4:       8582168      205972032  java.lang.String
   5:         25926      105454472  [B
   6:       2301550       92062000  java.util.TreeMap$Entry

 

posted on 2023-02-24 17:39  属于我的梦,明明还在  阅读(165)  评论(0)    收藏  举报