服务CPU使用没有超过100%,报GC错误根原因是什么?

GC报错的根原因是?

服务内部报错持久层异常
image.png
然后一个sql也陆续报错
image.png
这是这个sql代码中的mybatis-push的构造函数(这张表数据才189条)
image.png
这是其它接口的报错,同样是构造函数的报错
image.png

查询了报错信息的原因,可能是查询的数据量过大,导致内存不足,触发了垃圾回收,但垃圾回收效果不佳,最终导致了 GC overhead limit exceeded 错误。可是程序就最近出现问题,用户数量没有增加很多,查看报错服务的运行情况 就5分钟内cpu的使用率最高为85%。没有内存溢出。

阅读 1.4k
3 个回答

内存不够用不关 cpu 的事情,解决方法:

  1. 把 Xmx 之类的参数调大
  2. dump 一份内存,分析内存泄漏情况


看下是不是代码嵌套太多

大对象直接进入老年代,占据空间太大触发了gc吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题