热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

记一次springboot服务凌晨无故宕机问题的解决

这篇文章主要介绍了记一次springboot服务凌晨无故宕机问题的解决,具有很好的参考价值,希望对大家有所帮助。一

表述

在一次服务更新后发现每天凌晨0点3秒服务准时挂,开始的时候认为是maven依赖中存在system.exit(3)类似这样的代码,但是我想了下这个代码很多客户都有用到但是只有这一个客户出现了问题,而且另外一个服务没有更新在此前几个月都是没问题的 这几天也是一样无故挂了。

环境

windows服务器

排查

1、初步怀疑是内存泄漏问题,在启动脚本中加入 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:heapdump.log,第二天起来一看还是挂了没有出现dump日志说明不是内存泄漏

2、白天几千几万的请求量都没有挂,凌晨时候星星两两的请求量甚至没有请求却挂了

3、服务准时0点3秒挂,后续我写了个脚本加入执行计划每日凌晨1点检查服务并启动,发现有写脚本的服务还是0点3秒挂而另外一个服务变成1点10几分左右挂了

4、有怀疑可能是logback的问题,日志生成规则是按日期备份的,可是每个客户都是这样的配置就这个客户有问题所以暂时排除这个可能了

临时解决

1、暂时给几个服务的启动脚本加入到执行计划中每日凌晨检查并启动,没有找到好的解决方案也不知道是什么问题,希望知道的大佬告知一下感激不尽。

附上执行计划检查脚本

@echo off
echo 正在检测启动服务…请不要关闭该窗口
D:
cd “D:写上服务的目录”
:ks
set num=0
for /f %%i in (‘netstat -ano^| find “:服务的端口”") do set /a num=%num%+1
echo %num%
if %num% == 0 (
echo “开始启动服务”
call D:aaa.bat
) else (
echo “无需启动服务”
)

其中D:aaa.bat 是服务的启动脚本 这里也可以直接写上java -jar springboot服务.jar类似这样的代码

最终解决

经昨晚12点时候录屏服务器后看后终于找到了问题所在,控制台没有丝毫的报错信息直接程序崩溃,这就是windows服务器的不足之处,如果此时服务器是Linux的话 会在项目目录底下记录崩溃的Jvm日志。思考之后发现果真竟然是logback的锅,找到原因:

1、因为logback配置中没有加入maxFileSize的配置,导致日志文件大小有几个G

2、服务器本身性能配置一般

3、logback采用的是zip压缩按日备份的

4、压缩文件是很耗CPU的,文件越大CPU占用越多,如果文件很大就会导致压缩到一半程序崩溃,这里就是出现了这种情况导致压缩到一半没成功,tmp临时文件也没有被删除

5、没有出现该问题的几个客户是因为日志文件都没有达到这种级别的量,其次其他几个客户的服务器性能都是很OK的

解决方法就是在加入maxFileSize配置 建议值是128M。值越大对服务器的性能要求就越高,我这边因为服务器性能一般保险起见设置128M

补充知识:Springboot启动即挂掉问题

提示说明端口8080被占用

将端口改为其他端口号即可

以上这篇记一次springboot服务凌晨无故宕机问题的解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程笔记。

原文链接:https://blog.csdn.net/qq_33812847/article/details/101693489


推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • 本文介绍了在Linux系统下进行文件压缩与解压的常用命令,包括tar命令的基本使用和参数,以及gzip、bz2、compress、rar和zip等不同格式的压缩与解压方法。同时还提供了常见的压缩文件后缀名及对应的解压命令,方便用户进行文件的压缩和解压操作。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • 使用freemaker生成Java代码的步骤及示例代码
    本文介绍了使用freemaker这个jar包生成Java代码的步骤,通过提前编辑好的模板,可以避免写重复代码。首先需要在springboot的pom.xml文件中加入freemaker的依赖包。然后编写模板,定义要生成的Java类的属性和方法。最后编写生成代码的类,通过加载模板文件和数据模型,生成Java代码文件。本文提供了示例代码,并展示了文件目录结构。 ... [详细]
author-avatar
六月的
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有