性能问答>java 进程堆外内存泄露>
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 阅读
请先登录,查看1条精彩评论吧
快去登录吧,你将获得
  • 浏览更多精彩评论
  • 和开发者讨论交流,共同进步