JVM自动重启

时间:2012-04-06 06:17:57

标签: java tomcat jvm logging tomcat5.5

当cpu达到100%时,我的jvm会自动重启,并显示以下错误消息。为什么会发生?

错误:

ERROR | wrapper | 2012/04/05 20:00:31 | Shutdown failed: Timed out waiting for signal from JVM.
ERROR | wrapper | 2012/04/05 20:00:31 | JVM did not exit on request, terminated
STATUS | wrapper | 2012/04/05 20:00:36 | Launching a JVM...
INFO | jvm 4 | 2012/04/05 20:00:38 | WrapperManager: Initializing...
INFO | jvm 4 | 2012/04/05 20:00:43 | Apr 5, 2012 8:00:43 PM org.apache.coyote.http11.Http11BaseProtocol init
    INFO | jvm 4 | 2012/04/05 20:00:43 | INFO: Initializing Coyote HTTP/1.1 on http-8181
    INFO | jvm 4 | 2012/04/05 20:00:43 | Apr 5, 2012 8:00:43 PM org.apache.catalina.startup.Catalina load
    INFO | jvm 4 | 2012/04/05 20:00:43 | INFO: Initialization processed in 2375 ms
    INFO | jvm 4 | 2012/04/05 20:00:43 | Apr 5, 2012 8:00:43 PM org.apache.catalina.core.StandardService start
    INFO | jvm 4 | 2012/04/05 20:00:43 | INFO: Starting service Catalina
    INFO | jvm 4 | 2012/04/05 20:00:43 | Apr 5, 2012 8:00:43 PM org.apache.catalina.core.StandardEngine start
    INFO | jvm 4 | 2012/04/05 20:00:43 | INFO: Starting Servlet Engine: Apache Tomcat/5.5.25
    INFO | jvm 4 | 2012/04/05 20:00:44 | Apr 5, 2012 8:00:44 PM org.apache.catalina.core.StandardHost start

2 个答案:

答案 0 :(得分:2)

这不是重启的JVM。您正在使用的包装脚本正在关闭它并重新启动。这是它的配置方式。看起来你的应用程序占用了大量的CPU。您可以尝试通过堆转储和GC日志来查看它是否与垃圾收集器相关。

答案 1 :(得分:0)

根据您的评论,您没有为Tomcat指定任何内存配置。我的猜测是Tomcat正在使用它执行所有请求所需的任何内存。正如我之前所说,在CPU达到100%之前,Tomcat应该在消耗最大可用内存时抛出PermgenSpace错误。 (然后你需要手动重启。)如果你设置predefined memory configuration for tomcat server,可以避免这种情况。

此外,如果您使用<Context>加载应用程序,则指定reloadable="false"也会使Tomcat不会自动重新加载上下文。