jvm问题排查
1、输出堆内存中每类对象的数量和占用内存大小
jcmd <pid> GC.class_histogram >gcclass.txt
输出文件示例
num #instances #bytes class name
----------------------------------------------1: 49531019 5169286304 [Ljava.lang.Object;2: 84366925 3374677000 com.*******3: 49584019 1983360760 java.util.ArrayList4: 58265504 1398372096 com.*******5: 7935713 1261279208 [B6: 19879449 795177960 com.*******7: 18946923 757876920 com.*******Group8: 15971394 702144120 [C9: 7931426 634514080 com.*******2996910: 22673661 544167864 java.lang.Long11: 15970150 511044800 java.lang.String12: 4911356 471490176 com.*******nceColor13: 7920144 443528064 com.*******htVo14: 17373007 416952168 java.lang.Integer15: 12247300 293935200 java.lang.Float16: 7931332 253802624 java.*******ue$Node17: 4629802 148153664 com.*******ghtGroup18: 1212293 106681784 com.*******lan19: 898584 50320704 com.*******Status20: 897911 50283016 com.*******ontrolMode21: 77144 3702912 java.util.concurrent.ConcurrentHashMap$Node22: 61607 2957136 java.util.HashMap$Node23: 992 1399168 [Ljava.util.concurrent.ConcurrentHashMap$Node;24: 4158 1365872 [Ljava.util.HashMap$Node;25: 6400 1103824 java.lang.Class26: 9250 814000 io.netty.buffer.PoolSubpage27: 8854 566656 java.util.LinkedHashMap$Entry28: 3165 506400 java.lang.reflect.Method29: 2745 241560 java.util.LinkedHashMap30: 3329 217944 [I31: 1704 204480 java.lang.reflect.Field
或着
jmap -histo <pid> | head -n <num> > histo_top20.txtnum 表示按大小排序输出前num的对象
2、输出gc日志记录
jstat -gc <pid> <time># time 输出时间间隔
输出示例
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT0.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.5630.0 0.0 0.0 0.0 9633792.0 0.0 23920640.0 23920591.7 40704.0 38219.5 0.0 0.0 301 334.254 10 390.309 724.563
3、
jmap -heap <pid>
4、生成堆转储文件 (heap dump)用于内存分析
jmap -dump:live,format=b,file=heap.bin <pid>