首页 > 其他分享 >Tomcat 故障案例排错

Tomcat 故障案例排错

时间:2023-11-03 11:37:14浏览次数:33  
标签:20 Tomcat 0.0 0.3 排错 故障 21408 root

案例一、Tomcat开机自启动故障

01、Tomcat 开机自启动方式,通过systemctl 设置开机自启动 (点击此处查看二进制安装如何通过systemclt 管理服务

02、修改/etc/rc.d/rc.local,在里面添加/app/tools/tomcat/bin/startup.sh  启动命令开机自启动

  发现系统重启后,Tomcat启动失败,

  原因:开机的时候,或者定时任务运行脚本的时候,无法识别到自定义的PATH环境变量,没有Java相关路径,导致开机Tomcat启动失败(定时重启任务失败也可能是这个问题导致的)

  解决:

1)、/etc/rc.d/rc.local 脚本开头重新定义PATH变量,或者脚本开头重新加载变量

vim /etc/rc.d/rc.local

 在startup.sh 命令前重新加载遍PATH(太长,不推荐)

touch /var/lock/subsys/local
export PATH=/app/tools/jdk/bin:/app/tools/jdk/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
/app/tools/tomcat/bin/startup.sh

3、重新加载下 /etc/profile (. 或者 source)

touch /var/lock/subsys/local
. /etc/profile
/app/tools/tomcat/bin/startup.sh

案例二、Tomcat(Java)服务器运行 占用大量swap,物理内存占用较少

原因:代码问题,

解决:

  1)、临时增大swap

 

  2)、调整Linux内核参数,让系统更优先使用物理内存

1 echo 'vm.swappiness =0' >> /etc/sysctl.conf 
2 
3 sysctl -p
4 #生效

#vm.swappiness ,swap亲和性,值越大,越优先使用swap,越小越优先使用内存
  3)、排查程序代码问题

案例三、Tomcat负载高

思路与流程

  1、先定位Tomcat的线程

  2、导出线程、进程信息

  3、与开发一起排查

基础排错流程:

  1)、通过ps aux 和top 命令排查tomcat 问题

  2)、通过top -Hp tomcat进程pid (pid通过jps获取)

[root@localhost ~]# top -Hp 1587 #Java 进程ID

 top - 21:51:05 up 10:09,  2 users,  load average: 0.02, 0.02, 0.05
Threads:  42 total,   0 running,  42 sleeping,   0 stopped,   0 zomb
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 
KiB Mem : 32946132 total, 31973116 free,   725284 used,   247732 buf
KiB Swap:  8388604 total,  8388604 free,        0 used. 31870840 ava

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ 
 1598 root      20   0 4797692 113128  21408 S  0.3  0.3   0:03.56 
 1612 root      20   0 4797692 113128  21408 S  0.3  0.3   0:18.41 
 1663 root      20   0 4797692 113128  21408 S  0.3  0.3   1:22.24 
 1587 root      20   0 4797692 113128  21408 S  0.0  0.3   0:00.00 
 1588 root      20   0 4797692 113128  21408 S  0.0  0.3   0:00.41 
 1589 root      20   0 4797692 113128  21408 S  0.0  0.3   0:00.44 
 1590 root      20   0 4797692 113128  21408 S  0.0  0.3   0:00.00 
 1591 root      20   0 4797692 113128  21408 S  0.0  0.3   0:00.01 
 1592 root      20   0 4797692 113128  21408 S  0.0  0.3   0:00.00

  3)、通过jmap命令和jstack 命令加进程的ID导出与显示进程的信息,并过滤线程信息

[root@localhost ~]# echo 'obase=16;1587'|bc
633
[root@localhost ~]# jstack 1587 |grep -A10 633

或者通过 show-busy-java-threads.sh 脚本查看

实用脚本/java.md at dev-2.x · oldratlee/useful-scripts · GitHub
https://github.com/oldratlee/useful-scripts/blob/dev-2.x/docs/java.md#-show-busy-java-threads

   4)、Tomcat的日志

   5)、通过vmstat 1判断

[root@localhost ~]# vmstat 1 
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 31823116   2112 391056    0    0     0     0   19   18  0  0 100  0  0
 0  0      0 31823116   2112 391056    0    0     0     0  343  307  0  0 100  0  0
 0  0      0 31823116   2112 391056    0    0     0     0  290  267  0  0 100  0  0
 0  0      0 31823116   2112 391056    0    0     0     0  263  253  0  0 100  0  0

标签:20,Tomcat,0.0,0.3,排错,故障,21408,root
From: https://blog.51cto.com/u_12523235/8162641

相关文章

  • centos7中使用yum安装tomcat以及它的启动、停止、重启
    介绍ApacheTomcat是用于提供Java应用程序的Web服务器和servlet容器。Tomcat是ApacheSoftwareFoundation发布的JavaServlet和JavaServerPages技术的开源实现。本教程介绍在CentOS7服务器上使用yum进行Tomcat7的基本安装和一些配置。请注意,这将安装在官方Ubuntu存储库中的......
  • centos7部署tomcat
    下载wgethttps://archive.apache.org/dist/tomcat/tomcat-9/v9.0.36/bin/apache-tomcat-9.0.36.tar.gz解压tarzxfapache-tomcat-9.0.36.tar.gz-C/usr/local/配置脚本vim/etc/init.d/tomcat文件内容如下:#!/bin/bash##tomcatstartupscriptfortheTomcat......
  • tomcat nio2源码分析
    一、前言​ 最近在看tomcatconnector组件的相关源码,对Nio2的异步回调过程颇有兴趣,平时读源码不读,自己读的时候很多流程都没搞明白,去查网上相关解析讲的给我感觉也不是特别清晰,于是就自己慢慢看源码,以下是我自己的见解,因为开发经验也不多,刚成为社畜不久,有些地方讲错如果有大佬......
  • JAVA第一课 TomCat部署与启动
    1.启动路径 C:\apache-tomcat-10.1.14\bin\startup.bat2.如出现闪退可到C:\apache-tomcat-10.1.14\logs\catalina.log这个路径查看bat执行的日志启动startup.bat时会闪退,按照其他分享的方法使用命令行来启动bat,但是由于它会在startup.bat里启动另外几个bat文件,所以只有star......
  • 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境
    前言   但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子。假如一个项目,由A、B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端。A和B都习惯使用SVN作为代码管理工具,他们分别开始工作,一个功能完成后会提交到SVN,以便对......
  • IDEA配置Tomcat老是在浏览器中包资源找不到404错误
    Idea报了一个404老是访问不到我的项目地址,花了我好久的时间,我可算是整出来了。废话不多说,上图。第一步排错:发现上边url:https://localhost:8080/事实上这个url是指向不了我们项目的,也就是说这个url的指向是找不到我们项目的路径的。接下来第二步:看下边那行有个红色圈圈的警告,我......
  • 【技术分享】Amazon RDS MySQL常见故障分析和排查
    在亚马逊云的RDS中支持几乎主流的数据库,对于亚马逊云中的数据库的问题排查对于我们的日常业务的稳定运行会很有帮助。本篇将对于Amazon RDSMySQL常见故障问题的分析和排查办法。RDS提供了强大的适配工作负载功能对于RDS的责任共担RDS常见连接问题Check:√客户端IP地址是否在D......
  • [Linux]centos下安装jdk和tomcat,并把jdk加到环境变量。
    1.下载tomcat/jdk 注意格式最好是tar或者gz包,方便解压。2.系统centos或者其他redhat系列linux发行版。3.通过ftp上传tomcat/jdk的包到系统。4.在/opt/目录创建 /opt/java/  /opt/tomcat  或者/usr/local/java/ /usr/local/tomcat这个看个人喜好。(注意目录名)5.tar......
  • 【Tomcat】解决tomcat创建文件和目录没有others权限问题
    最近公司有一个新的需求,就是用Java使用apachecommonexec执行ffmpeg进行ts文件切片。但是产生的切片文件总是没有others权限,导致无法使用http远程访问(做了反向代理)解决方案:在tomcat/bin目录下编辑catalina.sh文件查找umask=“0027”更改为umask=“0022”此时新生成的文件权限......
  • MySQL系列:binlog日志详解(参数、操作、GTID、优化、故障演练)
    目录简介作用系统参数--log_bin--server_id--binlog_format--sync-binlog(双一标准)--gtid-mode(gtid)--enforce-gtid-consistency(gtid)--expire-logs-day(优化参数)--binlog_cache_size(优化参数)--max_binlog_cache_size(优化参数)--max_binlog_size(优化参数)sql_log_bin日志操作开启日......