网站首页 > 博客文章 正文
1.故障突发
频繁GC会导致接口变慢,系统明显卡顿。首先当然是以最快的速度恢复系统的正常使用,然后组织相关干系人进行快速决策会议,进行事故原因排查,定位问题的根本原因。
2.故障恢复
1.先查看是否是新上线的版本代码导致的?如果是则先回滚到上一版本。
2.如果是旧代码导致的,只不过现在问题才暴露出来。这时候可以使用机器扩容、服务重启、接口限流等手段来维持服务的正常运行,给问题定位争取一定的时间。
3.问题定位
通过监控或者 GC 日志,我们可以观察到每次 FULL GC 后是否都能正常回收内存,但是内存很快又被占满了,从而出现频繁 FULL GC。
这个情况可能是因为如下原因导致:
- 新生代 Eden 区内存配置太小,导致大量新创建的对象直接进入老年代,导致老年代迅速被占满。
- 服务器的内存配置满足不了现有的业务量,如果代码本身没有问题的话,优先对内存进行扩容
如果每次 FULL GC 只能回收一点点内存,不能正常回收内存,从而导致频繁GC。可通过 jmap -histo 命令并结合 dump 堆内存文件作进一步分析,查看是哪个对象占用了大量内存不释放,从而定位到出问题的具体代码位置。修改测试后进行紧急版本上线。
- 上一篇: 线上服务的FGC问题排查,看这篇就够了
- 下一篇: 内存溢出OutOfMemoryError科普系列一
猜你喜欢
- 2024-09-18 3分钟搞清楚 JVM逃逸分析(java 逃逸对象)
- 2024-09-18 天天都是面对对象编程,你真的了解你的对象吗?
- 2024-09-18 做JAVA开发的同学一定遇到过的爆表问题,看这里解决
- 2024-09-18 线上一次fullgc搞得鸡飞狗跳后,我总结了这篇文章
- 2024-09-18 Java中的对象都是在堆上分配的吗?
- 2024-09-18 jvm 相关的线上问题,内存使用率飙升到 90%+ 等 处理手段
- 2024-09-18 面试官问我JVM问题,我直接回怼他
- 2024-09-18 JVM入门第2部分-调试内存问题(jvm内存调优方法)
- 2024-09-18 互联网大厂面试系列-面试被问到什么是JVM的逃逸分析?
- 2024-09-18 内存溢出OutOfMemoryError科普系列一
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)