内存溢出导致的Full GC异常

news2024/11/28 21:41:16

背景

   线上服务GC耗时过长,普遍10s+,此外GC后,内存回收不多

问题一

        通过查询gc日志可以发现,CMS进行垃圾回收的时候报concurrent mode failure错误,该错误是因为CMS进行垃圾回收的时候,新生代进行GC产生的对象晋升到老年代时,老年代空间无法满足需求,从而导致该异常

影响:当出现该异常时,CMS垃圾回收机制会退化成Serial Old,也就是说原本并行多线程进行垃圾回收退化成单线程回收,此时垃圾回收停顿时间就会变长,则就是为毛GC耗时长的原因

解决方案:

        首先我们需要了解CMS进行Full GC触发的时机是什么?从监控看当老年代达到92%时,则会触发GC,该值在jdk1.8后默认是92%(其实是可以计算出来的),可以通过-XX:+UseCMSInitiatingOccupancyOnly进行设置大小

问题二

        为什么GC后,老年代回收内存这么少?通过arthas dump下线上日志,利用Eclipse Meory Analyzer 进行分析,可以很直观看到是线上存活的WebCache中的ConcurrentHashMap对象占用过多,再根据代码进行分析即可找到问题所在

 

总结

        从以上分析可以了解到,其实是因为内存溢出导致老年代回收不及时,新生代晋升到老年代时空间不足,从而触发了CMS退化成Serial Old,导致GC耗时过长,从而拖垮整个系统性能。从中一个是需要处理内存溢出问题,第二个是可以通过-XX:+UseCMSInitiatingOccupancyOnly参数对GC触发的时机进行调节即可

其他

1.通过arthas 导出dump文件,可以使用命令 heapdump --live /tmp/dump.hprof

2.使用Eclipse Meory Analyzer 导入dump文件进行分析,可以使用Dominator Tree 或者Leak Suspects功能进行分析都是很强大的。

 

参考:

了解CMS GC触发时机:CMS的CMSInitiatingOccupancyFraction解析_insomsia的博客-CSDN博客

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/590193.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JupyterLab(Jupyter Notebook)安装与使用

文章目录 前言安装JupyterLab切换中文语言JupyterLab desktop 使用演示其它补充后记 前言 目前在看《程序员数学:用Python学透线性代数和微积分》这个书,它里面的代码是在Jupyter中编写的,所以也安装下用用。 JupyterLab是一个可以同时编写…

[PyTorch][chapter 37][经典卷积神经网络-2 ]

1: VGG 2: GoogleNet 一 VGG 1.1 简介 VGGNet 是牛津大学计算机视觉组(Visual Geometry Group)和谷歌 DeepMind 一起研究出来的深度卷积神经网络,因而冠名为 VGG。VGG是一种被广泛使用的卷积神经网络结构,其在在20…

生成式模型的质量评估标准

Sample Quality Matrix 如何评价生成式模型的效果?ISFIDsFIDPrecision & RecallPrecisonRecall计算precision和recall 如何评价生成式模型的效果? Quality: 真实性(逼真,狗咬有四条腿) Diversity: 多样性&#x…

全网为数不多清晰可行的在VUE中使用sortable.js实现动态拖拽排序的教程!

目录 0 写在前面的 1 依赖安装 2 手写简单标签演示 3 要点 4 效果 0 写在前面的 首先批评以下文章 (10条消息) sortable.js 实现拖拽_sortablejs_花铛的博客-CSDN博客 (10条消息) sortablejs拖拽排序功能(vue)_C_fashionCat的博客-CSDN博客 他们…

Spring6入门 + Log4j2

1、环境要求 JDK:Java17(Spring6要求JDK最低版本是Java17) Maven:3.6 Spring:6.0.2 2、构建模块 (1)构建父模块spring6 在idea中,依次单击 File -> New -> Project ->…

什么是内部网络分段渗透测试?

网络攻击的规模、范围和复杂性与日俱增。随着黑客及其攻击方法变得越来越复杂,您的企业必须做出相应的响应,否则您的安全边界就会不堪重负。 如今,内部网络分段是将攻击成功风险降至最低、改善数据流和隔离关键支付数据的主要方法之一。 但是…

【U-Boot 之七】fastboot原理分析及uboot fastboot功能实践

本文首先介绍了fastboot的基本原理,然后分析了uboot中fastboot的实现,最后,从实践的角度测试了fastboot协议及各种fastboot命令的使用方式等 。本文的仅按照我本人的实际测试过程进行了简单的描述。若有不当之处,欢迎各位大神不吝…

专家警告AI可能会导致人类灭绝?

人工智能可能导致人类灭绝,包括 OpenAI 和 Google Deepmind 负责人在内的专家警告说 数十人支持在人工智能安全中心 的网页上发表的声明。 它写道:“减轻人工智能灭绝的风险应该与其他社会规模的风险(如流行病和核战争)一起成为全…

Linux系统安装RabbitMQ

rabbitmq安装 说明:本次使用centos7.9 安装虚拟机. 1. 安装依赖环境 在线安装依赖环境: yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c kernel-devel m4 ncurses-devel tk tc xz2. 安装Erlang 根据课…

[原创]集权设施保护之LDAP协议

LDAP是一种目录访问协议,它规定了以树状结构的方式来存储和访问数据。然而协议是抽象的,要产生具体的功效,必须在应用中实现,比如AD域服务就实现了LDAP协议。 LDAP最明显的优势就是读取速度快,拥有极高的搜索效率。 可…

Drools规则引擎

Drools规则引擎 Drools规则引擎1、Drools简介2、Drools入门案例2.1、业务场景2.2、maven坐标2.3、编写xml配置文件(多方法)2.4、创建drl规则文件2.5、单元测试 3、Drools基础语法3.1、规则文件的构成3.2、规则体语法结构3.2.1、条件部分3.2.1.1、约束连接…

day4,day5 -java集合框架

List、Set、Map等常用集合类的特点和用法。 常用集合类(List、Set、Map 等)是 Java 中提供的数据结构,用于存储和操作一组数据。以下是它们的特点和用法: List(列表): 特点:有序集合&#xff0…

多元办公场景下,企业如何保障工作效率与数据安全流通?

为适应数字化转型需求,提升办公效率,很多企业对工作模式进行革新,并将更多协同办公工具引入工作流程。然而,这也扩大了企业内网对外的安全暴露面,企业亟需进一步加强底层基础设施的网络安全建设,严防勒索病…

分布式监控平台——Zabbix6.0

市场上常用的监控软件: 传统运维:zabbix、 Nagios云原生环境: Prometheus (go语言开发的) 一、zabbix概述 作为一个运维,需要会使用监控系统查看服务器状态以及网站流量指标,利用监控系统的数…

内网渗透(八十六)之Exchange ProxyLogon攻击链利用

Exchange ProxyLogon攻击链利用 漏洞背景 2021年3月2日,微软发布了Exchange服务器的紧急安全更新,修复了如下7个相关的漏洞。 Exchange服务端请求伪造漏洞(CVE-2021-26855):未经身份验证的攻击者能够构造HTTP请求扫描内网并通过Exchange服务器进行身份验证。Exchange反序列…

基于SpringBoot的财务管理系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SpringBoot 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:…

王石创立“生物圈三号”发起“双碳同行者大会”,绿色家居企业参与其中

2023年5月27日 ,由万科集团创始人、深石集团创始人王石先生创立的碳中和社区品牌“生物圈三号”在深圳大梅沙成功举办了“回归未来双碳同行——生物圈三号双碳同行者大会暨全球运河穿越新书发布会”。 生物圈三号作为社区碳中和综合解决方案平台,为建筑、…

JVM-基础知识

JVM基础知识 JVM结构图 字节码文件 Java虚拟机不和包括Java在内的任何语言绑定,它只与字节码文件这种特定的二进制文件格式所关联. Class文件结构不仅仅是JVM的执行入口,更是Java生态圈的基础和核心. 字节码文件内容是什么 字节码是一种二进制的类文件,他的内容是JVM指令,而…

OpenAI竞对再被谷歌加注!4.5亿美元新融资到位,累计已吸金14.5亿美元

量子位 | 公众号 QbitAI OpenAI之外,第二不差钱的AI初创公司出现了! 研发出ChatGPT最强竞品Claude的Anthropic公司,在谷歌投资之后,再次官宣获得了4.5亿美元C轮融资。 这轮收购之后,Anthropic资金一跃达到14.5亿美元…

CPLEX Studio OPL项目介绍

参考B站视频:cplex入门到精通 1.理解 OPL 项目 CPLEX Studio 处理 OPL 项目文件(.project)、数据文件(.dat)、模型文件 (.mod)、设置文件(.ops)和运行配置(.oplproject)。 文件类型扩展名作用份数说明模型文件.mod模型存储和数据1~n必须数据文件.dat数据存储0~n非…