症状

  • 症状1:启动较慢、发现经常启动过程,tomcat就死掉了、点击一些页面,tomcat就死掉、在线人数过多tomcat就死掉了。
  • 症状2:发现confluence能正常运行,但是时间一久tomcat就自动死掉了。

解决办法

  • 对于症状1:请将tomcat的JVM内存配置大点。在安装目录的bin/catalina.sh 文件的cygwin=false上面加上:

    1
    2
    3
    JAVA_OPTS="-Xms256m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=512m"
    或者
    CATALINA_OPTS="-Xms256m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=512m"
  • 对于症状2:有可能是因为confluence一般配置中有预定任务,这些定时任务导致tomcat的死亡。全部禁用之即可。如果仍不能解决问题,那就用个shell脚本定时检测吧,发现tomcat死了就自动重启:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    #!/bin/sh
    echo " "
    echo ">>>>>>>>>>>>shell is doing【make by rcl】>>>>>>>>>>>>"
    echo " "
    echo " "
    if [ ! -f "/opt/wiki_out.log" ]
    then
    touch "/opt/wiki_out.log";
    fi
    while true;do
    process=`ps aux|grep confluence|grep -v grep`;
    echo " "
    if [ "$process" != "" ]
    then
    echo "【Print】confluence was started";
    echo "【INFO】`date '+%Y-%m-%d %H:%M:%S'` wiki_check.shell is running…… \n">>/opt/wiki_out.log;
    else
    echo "【Print】please wait,confluence is starting……";
    echo " ";
    /opt/soft/confluence/bin/begin-confluence.sh
    fi
    echo " ";
    sleep 60s
    done
    echo " "
    echo ">>>>>>>>>>>>shell was done【make by rcl】>>>>>>>>>>>>"
    echo " "

注意:JDK8移除了方法区,使用了元空间,默认大小为无限制,故不必设置PermSize和MaxPermSize。

后记:JAVA_OPTS与CATALINA_OPTS

JAVA_OPTS表示整个JVM内存大小,CATALINA_OPTS表示当前tomcat允许使用的内存大小。如果电脑上有多个需使用JVM的服务器(如多个tomcat或jboss等),请两个参数都进行设置,

启动服务器时,请优先启动设置了JAVA_OPTS参数的WEB服务器。第一个启动的服务器会导致JVM的启动,这样设置的JAVA_OPTS参数才能使得JVM生效。然后其他服务器就只需设置CATALINA_OPTS即可。最后保证所有的CATALINA_OPTS之和在JAVA_OPTS之内就好。