公司的服务莫名其妙的挂了,刚开始还以为是服务器被谁攻击了,启动没多久又挂掉,查了一下,发现是系统内存太满,自动把tomcat进程给杀死的!
都是常见的 Out of memory 问题。这通常是因为某时刻应用程序大量请求内存导致系统内存不足造成的,这通常会触发 Linux 内核里的 Out of Memory (OOM) killer,OOM killer 会杀掉某个进程以腾出内存留给系统用,不致于让系统立刻崩溃。
执行vim /var/log/messages
即可看到如下信息:
解决
解决方法要么是给tomcat增大内存配置,要么是把tomcat加入受保护进程,不让系统把它杀死,但是根本原因还是服务器内存本身太小了,所以改这些配置也是没啥意义。唯一要做的就是弄一个监控机制,内存溢出自动重启,或者发邮件提醒
从另一篇文章中得知,可以修改参数,防止自动杀死进程,文章如下