性能问答>java 自定义线程池发16w积分,服务直接发宕机>
12回复
2年前

java 自定义线程池发16w积分,服务直接发宕机



机器配置2核4G
image.png
情况是:自定义线程池,发16w积分,要发几个小时,才发半小时左右后,服务直接宕机,监控jvm消耗,发现老年代内存一直在增长,估计超过最大内存后服务宕机了,
image.png
加了HeapDumpOnOutOfMemoryError和HeapDumpBeforeFullGC参数生成的dump 文件不知道为啥下载后分析不了,解析报错,各位大佬,有没好的解决办法?

4092 阅读
请先登录,再评论

你自定义线程池是怎么弄的呢, 线程池常见OOM有两种, 一种是因为创建线程造成的, 一种是因为队列堆积造成的, 我怀疑可能是因为队列太长造成的.

2年前
回复 达子:

那你换了后,老年代还在增长么?

2年前回复
回复 言风:

目前在另外一个环境,cms换成G1,内存升级到8G,效果杠杠的了

2年前回复
回复 达子:

可以试下在你任务执行完后,调用集合的clear()方法

2年前回复
查看更多

应该是dump的文件没写完就被kill了,有crash文件吗,dmesg可以先看看

2年前
回复 达子:

dmesg是命令 执行下看里面是不是有outofmemorry之类的

2年前回复
回复 风吹屁屁凉:

没有,这两个文件要怎么生成?

2年前回复