Java.lang.OutOfMemoryError: GC overhead limit exceeded
缘由
系统是微服务架构,在服务器上跑了近11个微服务,某天发布更新部署新功能,几分钟后发现系统跑着跑着崩了。。。
排查
通过对11个微服务运行打印的日志,发现只有基础微服务日志中出现了 GC overhead limit exceeded
报错信息,然后从报GC异常的上一个报错的异常进行定位,发现是因为某个分页查询导致系统出现岩机的问题;
临时解决
对该查询接口进行优化:
- 查询中
去除前端不必要的字段
,以减少对象实例中的响应数据; - 对该查询进行
redis二级缓存
,以减轻数据库的请求压力;
防范
这种问题以后肯定还会发生,毕竟11个微服务在一台服务器上运行,资源又有限,目前看来只能从代码上进行防范这个问题了。
如果对服务器的硬件配置进行扩大,应该可以解决这个问题吧。
bug怎么这么多!