网站首页 > 博客文章 正文
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科普系列一
你 发表评论:
欢迎- 08-06nginx 反向代理
- 08-06跨表插入连续的日期,sheetsname函数#excel技巧
- 08-06初中生也能学的编程,不走弯路,先用后学
- 08-06find命令的“七种武器”:远不止-name和-type
- 08-06恶意代码常见的编程方式
- 08-06kali2021ping 外网不通
- 08-06因为一个函数strtok踩坑,我被老工程师无情嘲笑了
- 08-06hadoop集群搭建详细方法
- 39℃nginx 反向代理
- 最近发表
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- powershellfor (73)
- messagesource (71)
- plsql64位 (73)
- vueproxytable (64)
- npminstallsave (63)
- #NAME? (61)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- nacos启动失败 (64)
- ssh-add (70)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- qcombobox样式表 (68)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)