Java服务在linux上被杀死了。需要帮助来理解行为

时间:2016-11-21 15:51:55

标签: java jvm

我有一个云中的节点,其中几乎没有像logstash,newrelic collector等运行的java服务。几天后我看到其中一个服务已经死了。 var / log / messages表示

  

Nov 21 09:34:26 xxx-yyyy-services-18a kernel:KILL process 7912,UID   10112,(java)total-vm:3912228kB,anon-rss:867496kB,file-rss:268kB

在它被杀之后我查看了总的mem使用情况。我不认为这会有所帮助,但只想提供目前正在使用的内存量。

  
    

内存配置免费-mh                  总共使用的免费共享缓冲区缓存内存:3.7G 3.3G 410M 144K 42M     392M      - / + buffers / cache:2.9G 845M Swap:0B 0B 0B

  

Java服务配置为使用以下xmx值

newRelic -Xms256m -Xmx1024m(2个实例) logstash -Xmx500m 其他java服务: - 所有5个服务都配置为-Xms256m -Xmx1024m

因此,基于此配置,总服务被配置为使用系统具有的更多内存,只要它们不使用它就可以。但是我仍然需要了解可能发生的事情,以及如何调试发生的事情。所有服务都配置为转储堆,但我没有在任何地方看到核心文件(虽然它不会发生,因为系统没有mem甚至转储堆?)试图了解发生了什么以及var / log /是什么消息意味着什么?

我发现这篇帖子解释了被杀的过程。 https://unix.stackexchange.com/questions/128642/debug-out-of-memory-with-var-log-messages

有人可以根据他们的经验解释可能发生的事情吗?

1 个答案:

答案 0 :(得分:0)

这是因为你的内存不足而导致OOM杀手扼杀了一个进程。

观察您的内存使用情况,找出占用过多的内容,并调整您为服务提供的金额。或者为服务器添加更多内存。