Metaspace耗尽导致OOM问题

一、问题背景

生产检测到两台服务器内存仅剩50%,且CPU飙升到60%,产生告警。现网用户反映系统响应缓慢。

二、定位问题

1:通过主机名定位程序日志

2:查看全部应用日志并下载到本地

搜索Error关键字,发现是Metaspace空间不足,引起的OutOfMemory异常。Metaspace元空间是Java虚拟机中用于存放被加载的class数据,由于创建过多对象,导致元空间不足,引发OOM。

Caused by :java.lang.OutOfMemoryError:Metaspace

三、解决方案

1:根据错误日志信息,发现存在线程池嵌套线程池问题,所以调整线程池的排队队列主线程池从500改为400,从线程池队列从100改为50。

2:调整MaxMetaspaceSize大小,从原来512M调整到1024M,后续持续观察内存健康状况,适当动态调整。

-XX:MaxMetaspaceSize=1024M

相关推荐
没有bug.的程序员5 小时前
服务安全:内部服务如何防止“裸奔”?
java·网络安全·云原生安全·服务安全·零信任架构·微服务安全·内部鉴权
一线大码5 小时前
SpringBoot 3 和 4 的版本新特性和升级要点
java·spring boot·后端
weixin_440730506 小时前
java数组整理笔记
java·开发语言·笔记
weixin_425023006 小时前
Spring Boot 实用核心技巧汇总:日期格式化、线程管控、MCP服务、AOP进阶等
java·spring boot·后端
一线大码6 小时前
Java 8-25 各个版本新特性总结
java·后端
2501_906150566 小时前
私有部署问卷系统操作实战记录-DWSurvey
java·运维·服务器·spring·开源
better_liang6 小时前
每日Java面试场景题知识点之-TCP/IP协议栈与Socket编程
java·tcp/ip·计算机网络·网络编程·socket·面试题
niucloud-admin7 小时前
java服务端——controller控制器
java·开发语言
To Be Clean Coder7 小时前
【Spring源码】通过 Bean 工厂获取 Bean 的过程
java·后端·spring
Fortunate Chen7 小时前
类与对象(下)
java·javascript·jvm