是否有可能获得"内存不足"当Xmx值太高时,Apache Tomcat中的错误呢?
我为什么要问这个?
我们已将Java堆(Xmx)设置为8GB。 设置CATALINA_OPTS = -Xmx8192m 没有指定元空间(因此它根据需要而采用,并且由于Metaspace而不存在错误的可能性)。
但是,Tomcat会在一段时间后生成OOM错误并停止响应用户请求。
当我们检查JVisualVM for Tomcat进程时,Heap和Metaspace图表显示在极限之下。 Heap接触1.5GB(8GB),Metaspace接触200MB。
我发现这个链接在堆太高时提到了OOM错误。 https://confluence.atlassian.com/confkb/confluence-crashes-due-to-outofmemoryerror-gc-overhead-limit-exceeded-error-189433058.html。 我找不到足够的资源加强这一点。
你能分享一下你的想法吗?
答案 0 :(得分:0)
正如其他评论者所说,要获得更好的答案,请提供堆栈跟踪和其他信息。
OutOfMemory错误的另一个典型情况是,当您尝试分配比一次性可用内存更多的内存时,例如分配巨型大型数组时。异常消息只是'java.lang.OutOfMemoryError:Java堆空间',抛出在您分配数组的位置。