服务刚刚停止

我有一个严重的生产问题。 在OpenJDK上运行Java应用程序的服务只是在看似随机的时间停止。

它在手动调用时正确启动:

sudo /etc/init.d/name start 

但是之后,一个未知的过程突然不复存在。 在最后一次发生后约3小时。

控制台输出被redirect到一个日志文件。 这里没有解释。 同样在应用程序日志中(通过Java日志logging框架)。

在服务日志中没有任何兴趣:

 journalctl -u name.service 

在整个系统上不能findJava崩溃报告文件

 sudo find / -name 'hs_err*' 

我还可以在哪里寻找解释? 这是相当紧迫的任何帮助将不胜感激!

没有进一步日志的情况下,最有可能导致应用程序消失的原因是系统内存不足。

您可以使用确认

 $ grep -i -A20 "Out of memory" /var/log/syslog 

这通常是由于以下原因之一在您的平均服务器上发生的:

  1. 你的应用程序有一个内存泄漏,并继续使用越来越多的内存。
  2. 您的应用程序在正常操作期间使用的内存太多,但您只能注意到,当您的虚拟化框架将configuration的内存限制在较低的保证范围内时。
  3. 其他一些应用程序正在使用太多的RAM。 这可能是您的应用程序使用的错误configuration的SQL服务器。 记住:杀手并不一定会杀死导致内存不足的应用程序(而是某种程度上对其造成影响的应用程序)。

答对了! 11月7日02:00:51 web1内核:[2993761.744187]内存不足:杀死进程23861(java)得分461或牺牲孩子。 这是如何控制的?

要控制它,你会发现是什么导致系统内存不足,并解决了这个问题。 您将需要安装监控然后使用它。 观察系统在做什么,使用内存识别进程,然后弄清楚他们在做什么以及为什么。