java进程莫名被系统杀掉

场景:用springboot 开发的一个java程序部署到服务器上面,运行一段时间之后, 发现进程突然消失,没有错误日志打印,也没有内存溢出。查看服务器的状态还有部分内存。

 

原因:一直以为是程序问题导致的内存不够,程序挂掉了,各种查找之后发现并没有内存泄漏的问题,后来通过网上搜索可能是linux自动把进程杀掉了,查看被系统杀掉进程日志的命令:  egrep -i -r 'killed process' /var/log (只有root权限才可以查看),发现确实有被杀掉的进程,而且时间也对的上,到这知道原来是linux杀掉的进程。后来通过和我们运维了解,linux 会检测内存的变化,如果发现内存使用过大的进程,会被杀掉,保护系统正常运行。

 

解决:我和我们运维的同学反馈之后,他们说可以通过加大虚拟内存解决问题(当linux的内存不够的时候,会使用虚拟内存swap),我们当时服务器的swap内存为512m ,后面加到了2G,后面进程被杀掉的情况发生的就很少了(我们服务器实际内存本身就是太小,很容易就溢出)

 

free -lm 命令查看实际内存大小(实际和虚拟)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值