今天在CentOS 系统上部署几个项目,然后运行一段时服务就会莫名其妙会挂掉一两个,然后重新启动挂掉的服务之后又会出现其他服务挂掉的情况,查看启动日志也并没有发现有异常抛出。
排除掉技术原因后,发现是因为启动的 jar过多,服务器运行内存不足,linux 系统 kill 掉了某些 jar 进程。
解决方法:
第一种方法:进行 JVM 调优可以改善这种情况,但是项目太多,我们的个人服务器配置实在太低,仍然无法解决此问题,这里不做讨论了。
第二种方法:我们可以通过分配虚拟内存的方式解决,如下步骤:
- 查看当前的内存使用情况:
free -m
- 划分虚拟内存分区(此处划分为 2G),大约 10 秒无响应
- 执行下面两条命令: 将分区设置为 SWAP 分区,并将其设置为有效状态
mkswap /var/swap
swapon /var/swap
- 查看现在的内存使用情况如下图
free -m
发现Swap 虚拟内存中已经由 0 变成了 1999,说明我们已经成功分配了大约 2G 的虚拟内存。
然后我们启动多个正常 jar 就不会被莫名的杀掉了,以上。
参考:https://blog.csdn.net/weixin_42661168/article/details/100122126