GC 错误根源探究
应用程序出现 GC 错误,提示内存不足导致垃圾回收触发并出现 GC overhead limit exceeded 错误。但服务近期处理的用户数量并无增加明显,且监控数据显示 CPU 使用率峰值仅为 85%,并未出现内存溢出。
导致 GC 错误的根源可能是以下因素:
分析:
- 服务内部报错显示为持久层异常,可能是数据库查询数据量过多导致内存不足。
- 其它接口报错均出现在构造函数,可能是对象创建时大量分配内存导致。
虽然 CPU 使用率没有超过 100%,但 内存不足与 CPU 无关。要解决此问题,建议执行以下操作:
- 增加内存分配:调整 jvm 参数(如 Xmx)以增加可用内存。
- 分析内存泄漏:对内存进行快照分析,找出是否存在内存泄漏。