nohup命令解决SpringBoot/java -jar命令启动项目运行一段时间自动停止问题

问题描述:

在centos7上部署多个springcloud项目。出现了服务莫名其妙会挂掉一两个的问题,重新启动挂掉的服务之后又会出现其他服务挂掉的情况,查看启动日志也并没有发现有异常抛出。令人费解的是所有的服务都是通过nohup java -jar xxx.jar &启动的,理论上不会随随便便挂掉。

产生原因:

一开始我猜测,是GC回收,导致服务挂掉。但并不是这么回事,GC虽然有STW现象,但是一般不会结束总进程。后面折腾了好几天,才发现,因为启动的jar包项目过多,服务器运行内存不足,linux系统kill掉了某些jar进程

因此,总结来说,多个springboot项目部署在同一台服务器上,都有可能出现nohup java -jar启动的进程仍莫名其妙挂掉的问题,如果是企业,应该换用更好的服务器配置,但是我们没有那么多资金购买服务器怎么办?其实有两种解决方法:

解决方法:

第一种方法:进行JVM调优可以改善这种情况,但是项目太多,我们的服务器配置实在太低,仍然无法解决此问题,这里不做讨论了。

第二种方法:我们可以通过分配虚拟内存的方式解决

步骤一、查看当前的内存使用情况

free -m

步骤二、划分虚拟内存分区(大小为2G),执行命令大约15-20秒无响应

dd if=/dev/zero of=/var/swap bs=1024 count=2048000

 

步骤三、执行下面两条命令: 将分区设置为SWAP分区,并将其设置为有效状态

mkswap /var/swap

swapon /var/swap

步骤四、查看现在的内存使用情况

free -m

我们发现,Swap虚拟内存中已经由0变成了1999,说明我们已经成功分配了大约2G的虚拟内存。接下来让我们启动多个项目看一下能不能正常使用Swap的虚拟内存

大家可以看到,我已经启动了六个jar包项目,在Swap中,已经有内存被使用了,而且项目都在正常运行。问题得到解决!

步骤五、设置开机自动挂载虚拟内存

如果你不想每次重启服务器都重新设置一遍,那么你可以设置开机自动挂载Swap分区,编辑文件/etc/fstab

vim /etc/fstab 

在文件最后追加内容:

/var/swap            swap                 swap       default               0 0

其中/var/swap就是我们刚刚分配的swap交换空间的位置,如果你不是在硬盘的这个位置划分的虚拟内存,只需把追加内容中的/var/swap换成你的虚拟内存的路径就可以了,剩下的追加内容不变。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/12980.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TCP / IP 参考模型

TCP / IP 参考模型 5层参考模型5层参考模型5层模型的数据封装 5层参考模型 5层参考模型 综合 OSI 和 TCP/IP 的优点应用层: 支持各种网络应用 FTP, SMTP, HTTP 传输层: 进程-进程的数据传输 TCP, UDP 网络层: 源主机到目的主机的数据分组路由与转发 IP协议、路由协议等 链路层…

JS中的扁平化数据转换为树形结构数组

递归方法和循环方法,我都写了两种代码,仅供参考。 三种递归方法,两种循环方法,本质上都一样,就是写法不一样,加油!!! // 数据 const arr [{ id: 1, name: 广东, pid:…

还在手动下载github项目?想要自动化下载github项目?基于python开发项目自动下载模块帮你实现自动下载存储

GitHub是一个基于Web的代码托管平台和开发者社区。它允许开发者存储、管理和分享他们的代码,并进行版本控制。开发者可以在GitHub上创建仓库来存储项目代码,并使用Git来跟踪和管理代码的变更历史。GitHub提供了一系列协作工具,如问题追踪、Pu…

Vue实现在线文档预览

目录 背景在线预览Office文档文件在线预览pdf文档预览方案一方案二 Word文档预览Excel文档预览PPT文档预览 纯文本、各种代码文件预览图片文件预览视频文件预览Aliplayer阿里云播放器Xgplayer西瓜播放器Bilibiliplayer仿哔哩哔哩弹幕播放器 音频文件预览在线文档预览项目&#…

POE级联蓝牙定位系统方案_蓝牙信标,蓝牙网关,级联蓝牙网关

近年来,随着新能源行业的快速发展,在化工厂,核电厂以及电力电厂等企业,对人员定位,人员导航,资产定位,生命体征监测的需求越来越大。传统的蓝牙室内定位方案中蓝牙信标为锂亚电池供电,需定期更换电池且有安全隐患,为更好的服务有蓝牙定位导航,被动人员定位,生命体征…

MySQL之概述、安装和使用(一)

一、概述 关系数据库概述: https://blog.csdn.net/qq_21370419/article/details/128568920 二、数据库的安装 参考我的两篇博客: win10 安装mysql 5.6.36版本_windows 安装mysql5.6_人……杰的博客-CSDN博客 wind 10 安装 mysql 8.0_人……杰的博客…

50从零开始学Java之万类之王Object是怎么回事?

作者:孙玉昌,昵称【一一哥】,另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 在前面的文章中,壹哥跟大家说过,Java是面向对象的编程语言,而在面…

IDEA+SpringBoot+mybatis+SSM+layui+Mysql客户管理系统源码

IDEASpringBootmybatisSSMlayuiMysql客户管理系统 一、系统介绍1.环境配置 二、系统展示1. 管理员登录2.修改密码3.客户管理4.添加客户5.充值记录管理6.消费记录管理7.客户类型8.添加客户类型 三、部分代码UserMapper.javaLoginController.javaUser.java 四、其他获取源码 一、…

自动化测试工具——Fitnesse

1 介绍 是一个完全集成的独立wiki和验收测试框架。 1.1、协作工具 由于FitNesse是一个wiki web服务器,它的入门和学习曲线非常低,这使得它成为一个优秀的工具,可以与业务涉众进行协作。 1.2、测试工具 FitNesse中创建的wiki页面作为测试…

17款奔驰S400加装原厂无钥匙进入系统,提升您的便利性

奔驰无钥匙进入功能,只要身上装着车钥匙进入车内,车辆就能感应到钥匙的存在,这时只需按下启动键就可启动车辆了 奔驰无钥匙进入功能主要有两大使用体验,首先就是要注意主驾驶位车门的有效检测距离不小于1.5m,其他门钥匙…

Elasticsearch入门

部署单点es 1创建网络 、加载镜像 docker network create es-netdocker pull elasticsearch2安装ES docker run -d \--name es \-e "ES_JAVA_OPTS-Xmx512m -Xmx512m" \-e "discovery.typesingle-node" \-v es-data:/usr/share/elasticsearch/data \-v es-…

运输层:TCP的运输连接管理

1.运输层:TCP的运输连接管理 笔记来源: 湖科大教书匠:TCP的连接建立 湖科大教书匠:TCP的连接释放 声明:该学习笔记来自湖科大教书匠,笔记仅做学习参考 TCP是面向连接的协议,它基于运输连接来传…