为什么Tomcat 7服务器停在Ubuntu上?

时间:2014-08-22 13:20:02

标签: java tomcat tomcat7

我有一个运行Tomcat7服务器的Digital ocean实例。

有时它因为我不知道的原因而自行关闭。也就是说,我启动它,使用它,然后在几天内不做任何事情。然后我尝试连接到它,但它不可用,我必须重新启动它(sudo service tomcat7 restart)。

我希望它能全天候工作(可用),除非我手动关闭它。我没有在日志文件中看到任何堆栈错误痕迹。

服务器在一段时间不活动后关闭可能是什么原因?

3 个答案:

答案 0 :(得分:2)

我询问了Digital Ocean的技术支持,发现我的Droplet中没有交换文件。这可能是问题的原因(当没有物理内存时,进程被杀死,因为没有交换文件)。

所以我使用这个tutorial创建了它。我会看看这是否能解决我的问题。

答案 1 :(得分:1)

我也有这个问题,但添加交换空间并没有帮助。就我而言,tomcat被OOM杀手拦住了。在系统日志中检查这一点(在Ubuntu上:/var/log/syslog):“发送sigkill到...”

有关OOM杀手问题的帮助,您可以尝试提高tomcat进程的优先级:     echo -15 > /proc/PROC_NUMBER/oom_adj (其中PROC_NUMBER是您的特定流程)。有关调整OOM杀手的更多信息,请参阅http://www.oracle.com/technetwork/articles/servers-storage-dev/oom-killer-1911807.html

您可能希望调整tomcat的起始和最大堆大小,最大永久生成以及可能的其他参数。您可以通过CATALINA_OPTS环境变量执行此操作,例如:     export CATALINA_OPTS="-Xms256m -Xmx384m -XX:MaxPermSize=256M"

这些都对我有所帮助。我还有一个cronjob检查tomcat并在必要时再次启动它。

答案 2 :(得分:0)

检查/ opt / tomcat / logs / catalina.out 文件大小。如果catalina.out的大小变为2GB,则tomcat崩溃并且无法启动而没有任何错误消息。您需要为catalina.out设置日志轮换:

sudo apt-get install logrotate

然后创建

  

/etc/logrotate.d/的文件名

将以下内容复制到上述文件(“文件名”)

  

/var/log/tomcat/catalina.out {copytruncate daily rotate 7
  压缩missok size 5M}

根据需要更改cron参数。