GC回收报错的问题:
有时候批量存储几万条数据时候,长时间的跑了十来分钟,
会遇到报错提示 java.lang.OutOfMemoryError: GC overhead limit exceeded
看理论介绍,这个问题是 多次执行回收都没回收到多少内存, 就会报错
但是我怎么判断我是不是快到这个瓶颈了,再跑下去就要出现这个报错了(用命令看内存,看限制,看磁盘,还是看哪个数据)
或者报错后,该从哪些方面检查, 去避免这个问题(要改代码的话,改哪些方面之类的)
GC回收报错的问题:
有时候批量存储几万条数据时候,长时间的跑了十来分钟,
会遇到报错提示 java.lang.OutOfMemoryError: GC overhead limit exceeded
看理论介绍,这个问题是 多次执行回收都没回收到多少内存, 就会报错
但是我怎么判断我是不是快到这个瓶颈了,再跑下去就要出现这个报错了(用命令看内存,看限制,看磁盘,还是看哪个数据)
或者报错后,该从哪些方面检查, 去避免这个问题(要改代码的话,改哪些方面之类的)
代码整改,分批次多线程并发处理数据。不要让一个线程长时间处理大批量数据。
财大气粗又不想改代码的话就加内存吧,加到不报错为止,加内存后把-Xmx提上去。