如何修复“请求的数组大小超过VM限制” Java中的错误? [英] How to fix "Requested array size exceeds VM limit" error in Java?

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

问题描述

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

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


SEVERE: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



更新



Update


-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天全站免登陆