tomcat 服务突然停止、日志排查以及解决方案

news/2024/11/23 20:29:19/

文章目录

          • 一、服务停止调研
            • 1. jvm排查
            • 2. 日志排查
            • 3. 推测与ssh会话有关
          • 二、ssh会话强制退出验证
            • 2.1. 手动强制关闭进程1
            • 2.2. 手动强制关闭进程2
            • 2.3. 总结归纳与解决方案

一、服务停止调研
1. jvm排查

有可能是jvm配置参数导致的,然后在/var/log和/app/apache-tomcat-7.0.109/logs并没有找到jvm致命错误日志(hs_err_pid.log)
接着查看/app/apache-tomcat-7.0.109/bin/catalina.sh中的jvm配置的参数

JAVA_OPTS="-Xms4096m -Xmx4096m -Xss1024K -Xmn1536m -XX:PermSize=64m -XX:MaxPermSize=256m"

在这里插入图片描述
服务器参数

服务器型号CPU内存硬盘
redhat7.64c8G100G

jvm配置参数也合理

又排除了GC情况,使用 jstat -gc pid 5000查看也没发现问题

2. 日志排查

原因:日志中存在不明进程销毁日志,如下:
十二月 19, 2022 11:52:08 上午 org.apache.coyote.AbstractProtocol pause
信息: 暂停ProtocolHandler[“http-bio-8080”]
{“@timestamp”:“2022-12-19T11:52:08.596Z”,“LogId”:“”,“level”:“INFO “,“threadID”:“19”,“threadName”:“DubboShutdownHook”,“ip”:“192.168.105.6”,“class”:”?”,“method”:“”,“Line”:“”,“applicationName”:“pis-business”,“type”:“pis”,“message”:" [DUBBO] Unregister: dubbo://192.168.105.6:20088/com.gblfy.fis.PisInsureDubboService?anyhost=true&application=dubbo&default.timeout=300000&dubbo=2.0.1&generic=false&interface=com.gblfy.fis.PisInsureDubboService&methods=getError,service,getResult&owner=lis&pid=18558&revision=1.0-SNAPSHOT&side=provider&timestamp=1671421921242, dubbo version: 2.0.1, current host: 192.168.105.6"}
十二月 19, 2022 11:52:08 上午 org.apache.catalina.core.StandardService stopInternal
信息: 正在停止服务[Catalina] EncodeingKafka is close
十二月 19, 2022 11:52:08 上午 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads
严重: The web application [/pis-business-gblfy-1.0-SNAPSHOT] appears to have started a thread named [DubboRegistryFailedRetryTimer-thread-1] but has failed to stop it. This is very likely to create a memory leak.
十二月 19, 2022 11:52:08 上午 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads
严重: The web application [/pis-business-gblfy-1.0-SNAPSHOT] appears to have started a thread named [DubboZkclientConnector-SendThread(192.168.105.201:2181)] but has failed to stop it. This is very likely to create a memory leak.
严重: The web application [/pis-business-gblfy-1.0-SNAPSHOT] appears to have started a thread named [Log4j2-TF-3-AsyncLoggerConfig-4] but has failed to stop it. This is very likely to create a memory leak.
十二月 19, 2022 11:52:08 上午 org.apache.coyote.AbstractProtocol stop
信息: 正在停止ProtocolHandler [“http-bio-8080”]
十二月 19, 2022 11:52:08 上午 org.apache.coyote.AbstractProtocol destroy
信息: 正在摧毁协议处理器 ["http-bio-8080"]

3. 推测与ssh会话有关

怀疑与ssh会话有关,我用的是windows+SecureCRT/xshell

二、ssh会话强制退出验证
2.1. 手动强制关闭进程1

启动 tomcat服务

cd /app/apache-tomcat-7.0.109/
sh bin/startup.sh

手动在任务管理中强制关闭SecureCRT/xshell的进程,再登录SecureCRT/xshell,使用grep查看运行的tomcat,发现tomcat依然运行。

ps -ef|grep java 
root      18895     1  1 11:52 ?        00:00:39 /app/jdk1.8.0_301/bin/java -Djava.util.logging.config.file=/app/apache-tomcat-7.0.109/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms4096m -Xmx4096m -Xss1024K -Xmn1536m -XX:PermSize=64m -XX:MaxPermSize=256m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8851 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.105.6 -Dignore.endorsed.dirs= -classpath /app/apache-tomcat-7.0.109/bin/bootstrap.jar:/app/apache-tomcat-7.0.109/bin/tomcat-juli.jar -Dcatalina.base=/app/apache-tomcat-7.0.109 -Dcatalina.home=/app/apache-tomcat-7.0.109 -Djava.io.tmpdir=/app/apache-tomcat-7.0.109/temp org.apache.catalina.startup.Bootstrap start
2.2. 手动强制关闭进程2

启动 tomcat服务并查看日志

cd /app/apache-tomcat-7.0.109/
sh bin/startup.sh &  tail -f logs/catalina.out 
  • 1直接关闭tomcat启动窗口,重新登陆,tomcat服务进程已关闭。
  • 2直接通过任管理窗口强制关闭SecureCRT/xshell的进程,再登录SecureCRT/xshell,使用grep查看运行的tomcat,发现tomcat服务已经停止运行。
  • 3脚本启动
    Tomcat 一键启停脚本 linux
    直接通过任管理窗口强制关闭SecureCRT/xshell的进程,再登录SecureCRT/xshell,使用grep查看运行的tomcat,发现tomcat服务已经停止运行。
2.3. 总结归纳与解决方案

启动tomcat服务时,如果通过多条shell脚本执行多条命令的话,关闭当前启动窗口或者强制关闭SecureCRT/xshell的进程,再登录SecureCRT/xshell,使用grep查看运行的tomcat,就会发现tomcat服务已经停止运行。

  • 解决方案
    第一种:启动tomcat 直接使用sh bin/startup.sh启动tomcat服务
    第二种:脚本启动单条命令执行tomcat启动

http://www.ppmy.cn/news/5078.html

相关文章

【Redis技术专题】「高可用技术基础」一同分析一下Redis高可用的“基石”之主从架构的本质原理解析

📕技术箴言 当心中有更高的山峰去攀登,就不会在意脚下的泥沼。 📕前提概要 Redis高可用的方案包括:持久化、主从复制(及读写分离)、哨兵和集群(Cluster)。 📕&#x1f…

python获取redis memory使用情况

项目研发过程中,用到Python操作Redis场景,记录学习过程中的心得体会。 一、环境搭建 Windows Anaconda3安装redis第3方包,pip install -u redis pip install -u # 升级安装 linux下查看redis配置信息bind 127.0.0.1 # 表示只允许本地访问,…

中国清洁清洗行业等级资质

中国商业企业管理协会清洁服务商专业委员会——“中清委”(以下简称评定单位)承担组织等级清洁清洗服务机构评定工作。 申请资料 (1)专业清洁清洗服务机构等级评定申请表(附录B); (2)法人代表资格证明&#xff1…

【JavaScript】while循环、do…while循环、for循环

文章目录一.循环的概念和意义二.while循环三.do...while...循环四.for循环的使用五.break和continue关键字介绍BREAK 终止循环CONTINUE 结束本次循环六.练习题一.循环的概念和意义 循环结构,就是根据某些给出的条件,重复的执行同一段代码循环必须要有某些…

基于ssm框架的汽车故障维修管理系统源码+开题报告+论文+远程安装部署+视频讲解

博主介绍:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 项目名称 基于ssm框架的汽车故障维修管理系统源码开题报告论文远程安装部署视频讲解 演示视频 视频去哪了呢?_哔哩哔哩_bilibili 系统介绍 项目介绍…

计算机毕业设计 SSM与vue的汽车租赁管理系统(源码+论文)

文章目录1 项目简介2 实现效果2.1 界面展示3 设计方案3.1 概述3.2 系统流程3.3 系统结构设计4 项目获取1 项目简介 Hi,各位同学好呀,这里是M学姐! 今天向大家分享一个今年(2022)最新完成的毕业设计项目作品,【基于SSM的汽车租赁…

计算机毕设Python+Vue学习类视频网站(程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

界面控件DevExpress WPF中文指南 - 主题设计器工作区介绍

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 DevExpress WPF的Them…