1回复
java 进程堆外内存泄露
应用基于springboot,内嵌tomcat的web应用,包括后端逻辑和VUE的前端代码。
VM.flags如下
-XX:CICompilerCount=12 -XX:CompressedClassSpaceSize=96468992
-XX:ConcGCThreads=3 -XX:+DisableExplicitGC -XX:G1ConcRefinementThreads=13
-XX:G1HeapRegionSize=1048576 -XX:GCDrainStackTargetSize=64
-XX:+HeapDumpOnOutOfMemoryError -XX:InitialHeapSize=104857600
-XX:MarkStackSize=4194304 -XX:MaxDirectMemorySize=10485760
-XX:MaxHeapSize=104857600 -XX:MaxMetaspaceSize=104857600
-XX:MaxNewSize=20971520 -XX:MetaspaceSize=67108864
-XX:MinHeapDeltaBytes=1048576
-XX:NativeMemoryTracking=detail -XX:NewSize=20971520
-XX:NonProfiledCodeHeapSize=0 -XX:ProfiledCodeHeapSize=0
-XX:ReservedCodeCacheSize=41943040 -XX:SurvivorRatio=8
-XX:ThreadStackSize=512 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops
-XX:+UseFastUnorderedTimeStamps -XX:+UseG1GC
arthas显示堆内存使用 85M,堆外内存使用125M(-XX:NativeMemoryTracking=detail该选项也没生效,具体分布未知),堆内存dump出来MAT分析基本正常
pmap 显示rss 700多M,还在缓慢升高,程序刚启动时400M,只升不降。最大堆设置100M,600多M的堆外内存不可理解
问题:700-85-125 = 490M是什么,还在增长,怎么查?目前通过perf 也看不出特别可疑之处。
4924 阅读