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

news2024/11/24 12:32:34

文章目录

          • 一、服务停止调研
            • 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.coloradmin.cn/o/100284.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022 软件测试大题【太原理工大学】

大题应该是有两道,每道10分,具体是不是我也不知道,老师也不确定。① 白盒测试 —— 控制流图,给出一段代码,画出控制流图,根据公式求程序段的环形复杂度,求程序基本路径集合中的独立路径&#x…

永磁同步电机(PMSM)磁场定向控制(FOC)电流环PI调节器参数整定

文章目录前言一、调节器的工程设计方法二、电流环PI调节器的参数整定2.1.电流环的结构框图2.2.典型I型系统2.3.电流环PI参数整定计算公式三、电流环PI调节器设计实例3.1.永磁同步电机磁场定向的电流闭环控制3.2.电流环PI参数计算3.3.仿真分析总结前言 本章节采用工程设计的方法…

CommaFeed:仿Google Readerd的RSS阅读器

最近老苏身边中招的人也开始多起来了,大家要保重~ 本文开始于 9 月下旬,完成于 10 月下旬,目前正式版本还是老苏打包时用的 2.6.0,不过现在已经有了 3.0.0 RC1 什么是 CommaFeed ? CommaFeed 是受 Google Reader 启发而…

CS144-Lab0解析

讲在开头 cs144建议我们使用Modern C来完成所有的lab,关于modern c的全面的用法可以在(http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines)获取。 以下是一些代码规范: 不要使用malloc()和free()不要使用new和delete在不得不使用指针时应…

如何自动估算项目开发成本及报价,提高估算效率?

项目估算需要有科学专业的估算方法,需要有明确的量化指标,那么如何自动估算项目开发成本及报价? 第一步:功能点复杂程度的估算 CoCode需求分析工具,根据用户需求,使用COSMIC和IFPUG项目规模估算法&#xff…

数据结构C语言版 —— 队列+循环队列实现

文章目录队列1.概念2. 生活中队列应用3. 队列的实现初始化队列入队列出队列获取队头元素获取队尾元素获取队列中元素个数判断队列是否为空销毁队列2. 循环队列队列 1.概念 和栈相反,队列(queue)是一种先进先出的线性表,它只允许在一端进行插入&#xf…

C#-winform调用COM组件(COM组件由Qt开发)

一、场景介绍 在项目开发中,需要Qt与C#进行混合编程,完成项目开发。C#这边作为主框架,Qt负责编写插件,将功能模块通过COM组件的形式封装注册,再由C#调用、交互完成最终的项目。 程序开发环境: win10 64位 编译器: VS2017 Qt版本: Qt5.12.6 二、Qt封装COM组件 2.1 环境…

android flutter 安装

下载 flutter官网下载安装:https://flutter.dev/docs/development/tools/sdk/releases 将下载下来的zip安装包解压到想安装Flutter SDK的路径。注意,不要将flutter安装到需要一些高权限的路径,比如C:\Program Files\ 配置环境变量 添加fl…

案例教学 | 如何确定ADAMS简化模型的准确性,以及简化模型精度不够怎么办?

仿真建模过程中不可避免地对各种复杂元素进行简化处理。这种建模思路的终极目标是不牺牲仿真精度、还提升仿真效率。在Adams仿真建模过程中也有一些常见的简化方式,如非线性元素按线性建模、不考虑摩擦力、通过耦合约束等效传动关系等等。应用简化建模之前&#xff…

蓝桥杯有必要参赛吗?

昨天和群里的小伙伴在群里聊,有的小伙伴竟然说蓝桥杯一等奖没有含量,我也是醉了! 就像去年看了一个号主写的:研究生遍地都是! 放眼全国14亿人口,别说研究生了,本科生占比有多少? “蓝桥杯是我人生中得到…

多态性:中的向下转型,instanceof 操作符的使用

多态性:中的向下转型,instanceof 操作符的使用 每博一文案 都说树叶不是一天变黄的,人心也不是一天变凉的,每一个现在的自己,其实都是过去的自己拼凑的。 如今我们的气质里都藏着过去走过的路,看过的书和爱…

混合模式和预乘原理的理解

首先说到混合模式,简单理解,混合模式就是同一像素上有两个颜色需要混合成一个使用的模式。 这里的两个像素点,我们把原先已经存在的,也就是下面的像素点颜色定义为目标颜色。把新加上来的,也就是上面的像素点颜色定义为…

【Selenium IDE录制脚本】三分钟教会你安装Selenium IDE的安装及使用

目录 1、安装Selenium IDE 1.1、安装Firefox浏览器 1.2、安装selenium IDE 2、selenium的脚本录制 1、安装Selenium IDE 1.1、安装Firefox浏览器 因为selenium的不同版本对Firefox的支持不同,所以我们安装了Firefox之后,需要关闭他的自动更新 搜索&…

Python-Tinydb数据库详解

目录 数据库 Tinydb Tinydb 使用 安装 导入 创建数据库 创建 table 增 删 查 改 其他函数 示例 最后 数据库 数据库就是存储数据的的地方,现在我们生活中几乎每时每刻做的事可能都有它的作用。今天来介绍 Tinydb 数据库,它适合初学者&am…

设计模式概述之建造者模式(五)

常说的设计模式是23种设计模式,分为3大类: 创建型模式5种:工厂方法、抽象工厂、单例、建造者、原型 结构型模式7种:适配器、代理、桥接、装饰者、外观、享元、组合 行为型模式11种:模板方法、解释器、策略、观察者、…

【如意如意顺遂我意快快显灵】

文章目录 ● 【猿如意安装】 (基于Windows环境安装) ● 【猿如意首页】 ● 【猿如意效率工具】 ● 【猿如意开发工具】 ● 【猿如意教程文档】 ● 【猿如意一行代码】 ● 【猿如意ChatGPT】 ● 【Markdown笔记】 猿如意官网:猿…

【码极客精讲】二叉树

二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树特点…

Linux yum 命令

yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。 基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖…

Go 微服务开发框架 DMicro 的设计思路

Go 微服务开发框架 DMicro 的设计思路 DMicro 源码地址: Gitee:dmicro: dmicro是一个高效、可扩展且简单易用的微服务框架。包含drpc,dserver等 背景 DMicro 诞生的背景,是因为我写了 10 来年的 PHP,想在公司内部推广 Go, 公司内部的组件及 rpc 协议都…

Python:whl文件简介及实践

文章目录简介一、安装过程二、whl源地址推荐小结简介 WHL文件是以Wheel格式保存的Python安装包,Wheel是Python发行版的标准内置包格式。在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件,…