如何解决“请求的阵列大小超出VM限制"Java中的错误? [英] How to fix "Requested array size exceeds VM limit" error in Java?

查看:81
本文介绍了如何解决“请求的阵列大小超出VM限制"Java中的错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否有一个日志选项可以让tomcat记录错误的查询,而不是仅仅抛出此错误?

Is there an log option that can let tomcat log the bad query instead just throwing this ?

严重:java.lang.OutOfMemoryError:请求的数组大小超出了VM限制

SEVERE: java.lang.OutOfMemoryError: Requested array size exceeds VM limit

(尝试将日志级别设置为FULL,但仅捕获了上面的内容)

(Tried log level to FULL, but only capture the above)

此信息不足以进一步调试
或者,是否可以通过调整以下内容来分配更多的内存来解决此问题?

This is not enough information to further debug
Alternatively, if this can be fixed by allocated more memory by tweaking the following?

-Xms1024M -Xmx4096M -XX:MaxPermSize = 256M

-Xms1024M -Xmx4096M -XX:MaxPermSize=256M

更新

-Xms6G -Xmx6G -XX:MaxPermSize = 1G -XX:PermSize = 512M

-Xms6G -Xmx6G -XX:MaxPermSize=1G -XX:PermSize=512M

(上面的方法似乎效果更好,请继续监视)

(the above seems works better, keep monitoring)

推荐答案

将solr升级到较新版本似乎可以解决此问题,很可能较新版本具有更好的堆内存管理.

Upgrade solr to a newer version seems have sort this problem, likely newer version has a better heap memory management.

这篇关于如何解决“请求的阵列大小超出VM限制"Java中的错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆