码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【JVM】线上一次fullGC排查思路


    fullGC问题背景

    监控告警发现,今天开始我们线上应用频繁出现fullGC,并且每次出现后磁盘都会被占满

    查看监控

    查看监控发现FULLGC的机器均为同一个机房的集器,并且该机房有线上error报错,数据库监控对应的时间点也有异常,从今天的时间点开始,线上就频繁出现fullgc,并且磁盘一直告警。告警出现得很有规律,大概隔五分钟出现一次,每次出现后都会导致应用出现fullgc,影响系统稳定性。

    确认fullGC的原因

    对象分配到JVM的内存空间,是有分配策略的,比如:

    (1)、大对象优先分配老年代

    (2)、对象优先分配到年轻代的 Eden区,然后是 servicer1区,然后是老年代

    (3)、老对象也会放到老年代

    (4)、分配担保: 就是在年轻代的两个区都放不下的时候,就分配到老年代,如果老年代也放不下了,那么就会进行fullGC

    我们进行dump日志查看,发现每次fullGC时都有一个大VO对象,占用很大的内存(线上数据不方便贴图,这里举个别的例子)

    在这里插入图片描述
    说明本次内存泄漏的根本原因是跟该对象有关

    再仔细观察堆内内存使用情况发现发生fullgc后,老年代该对象就可以正常回收,说明该对象的因为过大而直接进入老年代的,本来如果是小对象就会直接被YGC回收的。

    查看代码确认该对象来源

    查看代码发现,我们dao层中存在一个sql直接返回了全量数据库对象,导致每次捞取后就直接进入了老年代,执行完后也没有被回收。fullgc每次隔一段时间就发生,是因为该调用链路是一个定时任务,把该条数据订正后,fullGC也恢复正常了

    查看为什么fullgc后磁盘会被占满

    这是因为我们当时配置了自动dump的参数,每次fullgc后都会去dump日志,并且dump的日志太大,占用了很大的磁盘空间,导致线上一直在告警

  • 相关阅读:
    数据库及ADO.NET学习(四)
    Java教程:二进制数组与十六进制字符串之间的相互转换
    NVIDIA控制面板进行设置时提示“无法应用选定的设置到您的电脑”的解决办法(更新显卡驱动的方法)
    KestrelServer详解[2]: 网络连接的创建
    【字典合集】SecLists-更全面的渗透测试字典 v2024.1
    【软件分析第13讲-学习笔记】符号执行 Symbolic Execution
    Log4j发布2.17.0,解决2.16.0存在的DOS攻击风险
    NIFI从Oracle11G同步数据到Mysql_亲测可用_解决数据重复_数据跟源表不一致的问题---大数据之Nifi工作笔记0065
    [buuctf.reverse] 131-135
    【电力系统状态估计与PMU(相量测量单元)】使用WLS和PMU来估计系统的电压幅值和角度还将这些值与使用Newton-Raphson方法获得的状态进行比较(Matlab代码实现)
  • 原文地址:https://blog.csdn.net/xiazi0721/article/details/136287139
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号