起因:做好了毕设的后端,有两个服务都是springboot,买了台阿里云服务器,部署上去了,然后在里面加了很多别的中间件。结果没过几天,前端来说,服务返回500。

排查: 卧槽这是怎么回事,接口没有进行改动,单纯的get请求过去也不行,返回500,感觉应该是服务挂掉了。可是返回的是500很奇怪,于是我上了服务器查看日志。

只是看见了这个玩意,再用jps去看java进程好家伙,服务被停止了。

我研究了一下这个,发现是tomcat的keeplive问题,但是这个不是主要原因,最多就个警告,后来使用了 vi /var/log/messages 命令,发现了一个大问题

我的服务被系统kill了,只因为内存不够了,wdnmd,学生机配置低,没办法

这是由于系统内存不足导致触发 Linux Kernel OOM(Out of memory killer)保护机制,将占用内存大的进程杀死,以保证系统正常运行。

解决方法
方法1:通过调整 JVM 参数限制最大可使用内存 -Xmx 1024m
方法2:启用 swap 分区
方法3:增加物理内存或增加机器
方法4:将应用分配到压力较小的服务器上

本人选择了启动swap分区,先观察一段时间,ok了我再写出swap方案实现