Tomcat关闭失败并出现内存错误

时间:2016-03-16 20:29:10

标签: java tomcat memory

我在64位CentOS服务器上安装了Apache Tomcat 7.0.27,并提供了37G的物理内存。对于我在Tomcat中运行的Web应用程序,我需要大量可用内存,因此我设置了类似于下面的Tomcat setenv.sh:

export JAVA_OPTS="
    -Xms30g 
    -Xmx30g 

    -XX:PermSize=256m 
    -XX:MaxPermSize=256m

    -XX:NewSize=6g 
    -XX:MaxNewSize=6g
    -XX:SurvivorRatio=8

    -XX:+DisableExplicitGC
    -XX:+UseConcMarkSweepGC 
    -XX:+UseParNewGC
    -XX:+UseCMSInitiatingOccupancyOnly
    -XX:CMSInitiatingOccupancyFraction=80"

我的Java版本是:

java version "1.6.0_41"
Java(TM) SE Runtime Environment (build 1.6.0_41-b02)
Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01, mixed mode)

当我运行{tomcat_home} /bin/startup.sh时,应用程序启动并运行正常但偶尔使用{tomcat_home} /bin/shutdown.sh关闭时,我收到以下消息:

Error occurred during initialization of VM
Could not reserve enough space for object heap

为什么会这样?

1 个答案:

答案 0 :(得分:1)

shutdown脚本尝试通过运行连接到Tomcat的关闭端口(8009?)的小型Java程序并发送消息来进行有序关闭。

该程序在其自己的JVM中运行,如果您的系统内存不足,则可能无法启动该JVM以将shutdown命令发送到正在运行的Tomcat。