Spring Boot应用内存超JVM堆配置无溢出,RES近5G求助排查
内存泄漏问题求助
环境与依赖
- 部署环境:Linux
- 使用框架版本:
- spring-rabbit 2.3.11
- kafka-clients 2.7.1
- spring-kafka 2.7.8
接口代码逻辑
仅提供一个HTTP接口,核心代码如下:
private final KafkaTemplate<String, String> kafkaTemplate; private final RabbitTemplate rabbitTemplate; rabbitTemplate.convertAndSend("cloud", "ctrlLog", data); kafkaTemplate.send(BIG_DATA_TOPIC, data);
JVM配置
- Java版本:1.8
- 堆内存设置:
-Xms3072m -Xmx3072m - 元空间设置:
-XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=512M - GC设置:
-XX:+UseG1GC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 - 其他参数:
-XX:NativeMemoryTracking=detail -XX:LargePageSizeInBytes=128M
排查情况
自行通过-XX:NativeMemoryTracking=detail导出文件及dump文件分析,未定位到问题。数日后执行jcmd pid VM.native_memory detail.diff scale=MB得到以下信息:
[0x00007f32dc1cf5ea] JNIHandleBlock::allocate_block(Thread*)+0xaa [0x00007f32dc163dda] JavaCallWrapper::JavaCallWrapper(methodHandle, Handle, JavaValue*, Thread*)+0x6a [0x00007f32dc166840] JavaCalls::call_helper(JavaValue*, methodHandle*, JavaCallArguments*, Thread*)+0x8f0 [0x00007f32dc1debf4] JVM_DoPrivileged+0x4f4 (malloc=1049MB type=Internal +456MB #3526800 +1531841)
无法确定泄漏发生的具体位置,求助定位该内存泄漏问题。
内容的提问来源于stack exchange,提问作者开心每一天
相关产品推荐
相关产品推荐

