前言
spring boot在服务器上运行一段时间后,程序退出了并且查询日志没有任何异常
环境
centos8.0
内存只有1.8G
排除日志未打印原因,只有是系统强制kill掉了
查询系统的
/var/log
下的日志系统判断是否因为内存不足系统oom
启动了OOM_killer
(内存未溢出时也会启动)-
内存不足将唤醒
oom_killer
,挑出/proc/<pid>/oom_score最大者并将之kill掉
-
上图刚启动已经占用1.4G了,其中java占用最大
解决方案
第一种添加
swap
方法。跟windows增加虚拟内存差不多。百度一下方案很多。第二种,关掉oom-killer。因为我这里是私人服务器,所以无所谓。公司的服务器够大不会存在这种问题。尴尬!
# sysctl -w vm.panic_on_oom=1 (默认为0,表示开启,重启后会回复原状)
# sysctl -p
3.第三种,没有实践过。调整springboot的启动参数,调整-xms
也就是内存问题解决。