我有一个云中的节点,其中几乎没有像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
有人可以根据他们的经验解释可能发生的事情吗?
答案 0 :(得分:0)
这是因为你的内存不足而导致OOM杀手扼杀了一个进程。
观察您的内存使用情况,找出占用过多的内容,并调整您为服务提供的金额。或者为服务器添加更多内存。