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

相关推荐
躲在云朵里`5 分钟前
Java面试题(中等)
java
懂得节能嘛.12 分钟前
【SpringAI实战】实现仿DeepSeek页面对话机器人(支持多模态上传)
java·spring
张乔2417 分钟前
mybatisX的自定义模板生成
java·ide·intellij-idea
笨蛋不要掉眼泪27 分钟前
Java测试题(上)
java·开发语言
ahauedu1 小时前
用Java 代码实现一个简单的负载均衡逻辑
java·python·负载均衡
Java初学者小白1 小时前
秋招Day18 - MyBatis - 基础
java·数据库·mybatis
大白玉米1 小时前
TVBOXOS6.0双端APP二开源码完整版全开源源码重构版
java·重构·php
Dcs1 小时前
Cisco爆出重大漏洞!无需登录即可获取Root权限,攻击者已在野利用!
java
青云交1 小时前
Java 大视界 -- 基于 Java 的大数据分布式存储在工业互联网数据管理与边缘计算协同中的创新实践(364)
java·大数据·边缘计算·工业互联网·分布式存储·paxos·数据协同
oioihoii2 小时前
C++实战案例:从static成员到线程安全的单例模式
java·c++·单例模式