gpt4 book ai didi

Java Spring 应用程序 + Tomcat : JVM doesn't make memory dump

转载 作者:搜寻专家 更新时间:2023-11-01 03:51:10 24 4
gpt4 key购买 nike

在我的公司,我们在 Spring(Flex 前端)中开发了一个企业 Web 应用程序,并以 SAAS 风格在 Tomcat 6 中将该应用程序部署到我们的客户。

最近我们遇到了(看似)随机的 OutOfMemory 错误,所以经过调查我知道我们应该在错误发生时检查 JVM 的内存转储。

我们使用的JVM是1.6.18,Tomcat版本是Windows Server 2008下的Tomcat 7.0.23。

我在 Tomcat 监控面板(在 Java 选项卡下)中添加了参数 -XX:+HeapDumpOnOutOfMemoryError,但机器没有生成任何转储。

完整的 java 选项在我们正在调查的服务器上设置如下:

-Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 7.0
-Dcatalina.base=C:\Program Files\Apache Software Foundation\Tomcat 7.0
-Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 7.0\endorsed
-Djava.io.tmpdir=C:\Program Files\Apache Software Foundation\Tomcat 7.0\temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=C:\Program Files\Apache Software Foundation\Tomcat 7.0\conf\logging.properties
-XX:PermSize=128m
-XX:MaxPermSize=1024m
-Xms1024m
-Xmx6144m
-XX:+HeapDumpOnOutOfMemoryError
-Dcom.sun.management.jmxremote.port=3333
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

如您所见,最大堆大小非常大(6 Gigs),因为我们的应用程序特别重。出于测试原因,我添加了 jmx 参数,以便使用 VisualVM 实时查看 JVM 状态,但在我查看它时没有发生任何事情。

stderr 显示的是:

java.lang.OutOfMemoryError

oom在它之前没有任何内容(除了我不知道是否相关的其他错误,但它们在 OOM 之前记录了几个小时或几分钟)并且在它之后没有任何内容。

它不报告内存部分(Java 堆大小或 Permgen 空间)对我来说似乎很奇怪。

也许保留的内存堆太大,JVM 无法写入,因为它处于临界状态(OOM)?也许 JMX 参数搞砸了?

这是当前运行的 JVM 的 VisualVM 屏幕截图: VisualVM

更新:

我安装了另一个 tomcat 安装(与问题来源相同的版本和相同的 java 选项)相同的 web 应用程序被修改为通过无限地填充数组列表来手动引发 OOM环形。测试证明 java 选项 -XX:+HeapDumpOnOutOfMemoryError 有效,因为在我引发 OOM 后产生了内存转储;在这种情况下,错误是:

java.lang.OutOfMemoryError: Java Heap space

接着是堆栈跟踪。因此,问题似乎不在于我的 JVM args 表示法,而在于我遇到的特定类型的错误。

另一个特点是,在我的测试中抛出 OOM 错误后,该应用程序继续在 Tomcat 中运行。另一方面,我的原始问题中的 OOM 导致 Tomcat 服务停止。

遗憾的是,在它停止之前没有采取堆栈跟踪,看起来很难进一步调查。 :(

最佳答案

-XX:HeapDumpPath="/some/path/dump.out" 添加到您的 JVM args 显式设置堆转储文件位置

关于Java Spring 应用程序 + Tomcat : JVM doesn't make memory dump,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27616762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com