当前位置: 首页 > news >正文

一种排查java.lang.OutOfMemoryError: Metaspace的方法

有现场反应k8s中的java应用出现java.lang.OutOfMemoryError: Metaspace,但是没有提供hprof转储文件,所以本地排查该问题。
Metaspace区域的内存溢出错误,通常意味着 JVM 中加载的类元数据超出了限制。
jstat -class 1000命令可以每隔一秒打印一次虚拟机装载了的类的个数,例如:
image

然后arthas的classloader命令可以查看每个类加载器加载的类的个数,例如:
image
根据现场反馈,某计算任务进行一段时间后会出现该错误,所以本地也进行同样操作争取复现。
jstat -class 1000 观察到类个数增加后,执行arthas的classloader命令,对比哪个类加载器的个数或加载的类个数增加了,从而缩小排查范围。
在我的例子中是org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader的numberOfInstances和loadedCountTotal都有明显增加,可以知道问题和drools规则引擎有关。
经过排查代码得知是有同事把KieBase对象缓存到redis中,每次从redis取出反序列化时都会增加类,占用metaspace空间,从而引起OOM。

http://www.zskr.cn/news/17775.html

相关文章:

  • MDX Blog Post
  • 本站点即将在2025年改变研究方向和目标
  • 实用指南:12_OkHttp初体验
  • 乒乓球
  • wmctf2025
  • Java基础-Eclipse工具-面向对象(1)
  • Qwen3技术报告
  • 在Ubuntu 22.04系统上安装libimobiledevice的步骤
  • 破解安防整合难题:详解国标GB28181EasyGBS如何实现零插件Web直播
  • leetCod热题100-73、买股票的最佳时期
  • 有限体积法和有限差分法、有限元法的区别。
  • “十五五”战略下,央国企人事系统如何破局增效?T集团数字化转型案例分享
  • ELK—— Elasticsearch Logstash Kibana
  • 关于审批流的记录
  • Linux:线程池 - 指南
  • AI元人文的硅基实现可行性Ai研究报告
  • task4.c
  • 实用指南:【双光相机配准】可见光与红外相机计算Homography
  • P14150 不动鸣神,恒常乐土
  • win7无线网络连接wifi名称乱码
  • 【完结】-固态硬盘ssd
  • # ShowMeBug技术评估创新案例:从八股文到实战编程的招聘革命
  • README生成和更新Prompt
  • #6515. 「雅礼集训 2018 Day10」贪玩蓝月
  • C# 弃元模式:从语法糖到性能利器的深度解析
  • 2025钣金加工厂家最新推荐榜:精密工艺与定制服务口碑之选
  • 静态库与动态库:开发者必知的底层逻辑与实践技巧
  • 基于MATLAB的三轴航天器姿态控制的仿真
  • golang基础语法(四) 数组 - 教程
  • 自适应工作负载的智能系统构建技术解析