【问题标题】:Why does Tomcat 7 server stop on Ubuntu?为什么 Tomcat 7 服务器在 Ubuntu 上停止?
【发布时间】:2014-08-22 13:20:02
【问题描述】:

我有一个数字海洋实例,Tomcat7 服务器在该实例上运行。

有时它会因为我不知道的原因自行关闭。也就是说,我启动它,使用它,然后几天什么都不做。然后我尝试连接它,但它不可用,我必须重新启动它(sudo service tomcat7 restart)。

我希望它可以 24/7 全天候工作(可用),除非我手动将其关闭。我在日志文件中看不到任何错误堆栈跟踪。

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

【问题讨论】:

  • 似乎存在一些内存问题。 tomcat 是否获得所需的内存?
  • 有很多可能的答案,这里没有信息可以继续。您是否尝试过联系 Digital Ocean 支持?
  • 你在 catalina 有什么收获?
  • @Ved 如果是内存问题,我想我会在日志中看到OutOfMemoryError。会不会因为内存问题导致Tomcat被关闭,日志中什么也没有?
  • @Ved 服务器关闭时,我 a) 无法在浏览器中打开 Tomcat 的 URL b) cargo deployer (mvn cargo:redeploy) 报错(连接被拒绝,我想想)。

标签: java tomcat tomcat7


【解决方案1】:

我咨询了Digital Ocean的技术支持,发现我的Droplet里面没有swap文件。这可能是导致问题的原因(当没有物理内存时,进程会因为没有交换文件而被终止)。

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

【讨论】:

    【解决方案2】:

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

    有关 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 并在必要时重新启动它。

    【讨论】:

      【解决方案3】:

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

      sudo apt-get install logrotate
      

      然后创建

      /etc/logrotate.d/文件名

      将以下内容复制到上述文件中("filename")

      /var/log/tomcat/catalina.out { copytruncate 每天轮换 7
      压缩missingok大小5M }

      根据需要更改 cron 参数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-04
        • 2018-01-20
        • 2015-04-22
        • 1970-01-01
        • 2014-07-12
        • 1970-01-01
        • 2015-11-18
        • 1970-01-01
        相关资源
        最近更新 更多