Java.lang.OutOfMemoryError: GC overhead limit exceeded
缘由
系统是微服务架构,在服务器上跑了近11个微服务,某天发布更新部署新功能,几分钟后发现系统跑着跑着崩了。。。
排查
通过对11个微服务运行打印的日志,发现只有基础微服务日志中出现了 GC overhead limit exceeded
报错信息,然后从报GC异常的上一个报错的异常进行定位,发现是因为某个分页查询导致系统出现岩机的问题;
临时解决
对该查询接口进行优化:
- 查询中
去除前端不必要的字段
,以减少对象实例中的响应数据; - 对该查询进行
redis二级缓存
,以减轻数据库的请求压力;
防范
这种问题以后肯定还会发生,毕竟11个微服务在一台服务器上运行,资源又有限,目前看来只能从代码上进行防范这个问题了。
如果对服务器的硬件配置进行扩大,应该可以解决这个问题吧。
bug怎么这么多!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验