【发布时间】:2021-12-08 19:27:59
【问题描述】:
我们的后端服务是使用 java springboot 框架开发的。大型服务之一在保持运行时,内存利用率缓慢增加,如下图所示。当它达到 95% 时,服务会停止,没有任何错误日志记录。它是 32GB 内存。
堆和 GC 统计数据似乎还不错。
我还查看了内存转储,没有发现任何本机代码泄漏。
应用程序的登录页面是一个仪表板,用于将并发请求发送到后端。后端必须为此做相当多的处理。当要处理的数据更多时,内存突然激增,之后就再也没有下降过。我查看了堆转储,找不到任何泄漏嫌疑人。
还有什么可能导致内存利用率飙升?
【问题讨论】:
-
为什么你认为有问题?
-
"服务宕机,没有任何错误日志" 你的意思是JVM退出了?什么是退出状态?有核心文件吗?你试过
-XX:+HeapDumpOnOutOfMemoryError吗? -
您需要分析在尖峰期间和尖峰之前哪些数据结构或集合占用或消耗更多内存空间。尝试在峰值发生之前进行堆转储,并在峰值发生后进行另一个堆转储。
-
@ScaryWombat 内存利用率达到 95% 服务无响应。
-
@vaibhavsahu 从我的观察 type:byte[] 对象只占用一些空间。但这似乎不是内存使用量增加的原因。
标签: java spring-boot memory memory-management memory-leaks