tomcat正在崩溃,没有错误

7uzetpgm  于 2021-10-10  发布在  Java
关注(0)|答案(1)|浏览(373)

我在centos 7 vps上使用tomcat 9。这台服务器已经正常运行了两年,但最近崩溃了,就像内存不足一样。碰撞发生在新的tomcat杀死和启动后1小时到24小时之间。我还重新启动了我的vps。我删除了所有应用程序日志,以确保没有达到某些限制。任何日志中都没有错误,我已经通读了2010年的所有类似问题。
eclipse MemoryanAnalyzer似乎充满希望,所以我添加了 HeapDumpOnOutOfMemoryError 我的国旗 setenv.sh 如图所示:
export java_opts=“-xms1500m-xmx1500m-xss512m-xmn1000m-xx:+heapdumponautofmemoryerror”;echo“setenv.sh已设置java_opts:$java_opts”;
我还将所有mem参数增加了500米。但是,在jvm目录或任何其他目录中找不到堆文件。
我是该网站的唯一用户。在崩溃之间,我恢复主页以证明tc仍然存在,直到最终崩溃。
tc承载静态内容和两个war文件。无论我删除其中一个或两个,崩溃仍然会发生。我确实更新了我的静态页面,将版权年改为2021年(这是我通常在一月份做的,但今年忘记了)。我已经从备份中提取了原始静态文件,但它仍然崩溃。
有人能提供一些关于如何追踪这一点的其他想法吗?

a5g8bdjr

a5g8bdjr1#

在评论中,似乎有一个解决方案,但我对此表示怀疑:
我建议从 JAVA_OPTSCATALINA_OPTS (原因如下)-但这只是一个旁注。尽管这很有意义,但我并不期望它能修复任何问题:您的tomcat最终使用完全相同的配置运行,只是来自不同的环境变量。
我能想象它修复任何东西(特别是与记忆相关的东西)的唯一方法是当两者同时存在时 JAVA_OPTSCATALINA_OPTS 声明不匹配的内存参数,以及两个wins中较低的内存参数。最后,tomcat在启动时结合了两个参数,jvm将只解释其中一个(不要问我它是第一个、最后一个还是未定义的)
我推荐的一般方法仍在评论中:首先排除一个接一个的假设——如果假设内存有问题,则监控内存消耗和垃圾收集。如果您期望8gb的heapspace,那么这是显而易见的,但您的运行速度是1gb。否则内存泄漏将是显而易见的。一旦你可以排除内存(因为崩溃发生在内存充足的情况下),就去做下一个假设。
不太具体。。。我想知道这个答案是否真的对事后诸葛亮的人有所帮助。。。

相关问题