首页 > 系统相关 >记录一次上个月27号晚上元空间内存溢出

记录一次上个月27号晚上元空间内存溢出

时间:2022-11-07 17:34:01浏览次数:55  
标签:27 MaxMetaspaceSize 内存 JVM 空间 日志 溢出 加载

  这次是测试环境,处理问题的时间比较充裕。同样和之前堆内存溢出一样,arthas attach failure。不同的是这次attach过程报错显示 OutOfMemoryError:Metaspace。

  随即想到是不是配置JVM的MaxMetaspaceSize配置过小,查看了下docker-compose.yml,如下:

   MaxMetaspaceSize=128M,增加MaxMetaspaceSize的大小当然能解决问题,但是当时时间充裕,还是想找到根本原因,便添加了一些JVM启动参数,重启测试。

 

 

  一开始想通过-verbose:class参数看看有没什么异常的类加载,无奈没发现什么异常。渐渐的项目直接无响应,登录接口直接超时了,再次用top命令查看后端服务的机器系统性能情况,CPU一直在100%以上,有时甚至达到200%以上。

  由于添加了GC日志和OOM的参数,此时gc日志文件和堆dump文件都到手了。第一时间就是去gceasy.io网站上分析了gc日志。

 

 

   现在可以断定就是元空间内存不足导致的了。接着把dump文件装载入MAT分析看看内存的情况,其中一个problem suspect发现和类加载密切相关

 

 

   dominator_tree中最大的对象是LaunchURLClassLoader,和类加载也相关,元空间出问题了肯定和类加载相关这个是无需质疑的。元空间在JVM规范中是叫方法区,元空间是HotSpot对JVM规范中定义方法区的实现,JDK8以下中则是叫永久代。

  此时根本原因还是没找到,再导入到JVisualVM看看还有什么可利用的信息,观察到线程栈快照日志貌似和nacos以及Grpc有关系:

   咨询了一下架构师原来是nacos版本升级了,用新版本的协议是Grpc,可能是新版本需要加载的类比较多,Metaspace空间也就调到了256MB,问题也算是解决了。

  参考:Java Virtual Machine Specification

标签:27,MaxMetaspaceSize,内存,JVM,空间,日志,溢出,加载
From: https://www.cnblogs.com/road2master/p/16866742.html

相关文章

  • [ARC127E] Priority Queue
    有一种显然的想法:我们要考虑对每段操作中保留下来的数。但是这并不好做。正难则反:我们只需要关注删除掉的数。那么我们就需要得知删除每个数时的限制,这等价于求每个删除......
  • P1627 [CQOI2009] 中位数
    Idea注意到中位数只关心数据的相对大小,因此考虑从目标数字开始往两边求前/后缀和,接下来使用乘法原理来进行组合即可.可以用map统计.第一次感觉只要看一看扩展,当时......
  • pkl中list,tensor, numpy占内存的大小
    pickle中可以存储list,tensor,array类型的数据但是tensor占的内存要比list和array大的多经测试,存储nuscenemini数据集的参数信息,tensor:39Marray:23Mlist:......
  • 第9章 内存模型和名称空间
    看《C++PrimerPlus》时整理的学习笔记,部分内容完全摘抄自《C++PrimerPlus》(第6版)中文版,StephenPrata著,张海龙袁国忠译,人民邮电出版社。只做学习记录用途。目录9.1......
  • 27. 移除元素
    27.移除元素给你一个数组nums 和一个值val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外......
  • 面试必考 - 结构体内存对齐,还有人不会?
    很多人在编写代码实现功能的时候,或多或少都会接触到结构体的使用,在很多的编语言中,结构体都是很多数据结构的重要的组成部分。 在嵌入式的项目开发中,很多时候芯片的内存资源......
  • pat春季模拟考试+acwing第76周赛+AT276
    pat:模考58分,相较夏季赛差了不少1.模拟给定一个字符串,要求按照得分点和失分点进行模拟,求最后得分即可模拟比较难写参考小柳学渣大神的代码,大神码风和思路都很好1#i......
  • 20221427第十周学习总结
    2022-2023-120221427《计算机基础与程序设计》第十周学习总结作业信息班级链接(2022-2023-1-计算机基础与程序设计)作业要求(2022-2023-1计算机基础与程......
  • 基于PCM2706的USB-DAC(支持同轴、I²S输出)
    基于PCM2706的USB-DAC(支持同轴、I²S输出)简介:PCM2706是德州仪器公司的一款经典立体声16bitDAC解码芯片,集成HID人机控制接口与USBinterface,支持同轴信号输出(SPDI/F)、IIS数......
  • 力扣27 移除元素
    移除元素题目:给你一个数组nums 和一个值val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外......