Linux服务器上tomcat进程突然终止(进程莫名消失)问题排查

服务器上tomcat进程突然终止问题排查
1)检查是否shell进程终止导致tomcat终止(排除)

由于使用./catalina.sh start启动tomcat,启动后tomcat的父PID为1,因此不会由于shell断开而终止

2)tomcat进程是否被主动停止(排除)

查询tomcat的catalina.out日志,未发现有终止的日志,比如

INFO [Thread-6] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"]
INFO [Thread-6] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]

 

3)检查是否被操作系统kill掉

1. 查看Killed对应的日志
1.1 触发Killed常见原因

当系统资源不足时,Linux 内核也可以决定终止一个或多个进程。 一个非常常见的例子是内存不足 (OOM) killer,会在系统的物理内存耗尽时触发。
Linux有这个特性:OOM Killer,一个保护机制,用于避免在内存不足的时候不至于出现严重问题,把一些无关的进程优先杀掉,即在内存严重不足时,系统为了继续运转,内核会挑选一个进程,将其杀掉,以释放内存,缓解内存不足情况,不过这种保护是有限的,不能完全的保护进程的运行。

由于运行tomcat的是个人的服务器或测试服务器,配置较低,因此出现内存不足的情况。
1.2 查看Killed日志

当内存不足时,内核会将相关信息记录到内核日志缓冲区中,该缓冲区可通过 /dev/kmsg 获得。
有几个工具/脚本/命令 可以更轻松地从该虚拟设备读取数据,其中最常见的是 dmesg 和 journalctl。

使用 sudo dmesg | tail -7 命令(任意目录下,不需要进入log目录,这应该是最简单的一种)

hs@hs:~$ sudo dmesg | tail -7
[4772612.871775] [1125836]  1000 1125836     2539      911    61440        0             0 bash
[4772612.871777] [1126560]  1000 1126560     1787      474    53248        0             0 tmux: client
[4772612.871779] [1138439]  1000 1138439  2029489  1412461 12845056        0             0 python3
[4772612.871781] [1141425]  1000 1141425     1809       38    49152        0             0 sleep
[4772612.871783] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/user.slice/user-1000.slice/session-1549.scope,task=python3,pid=1138439,uid=1000
[4772612.871840] Out of memory: Killed process 1138439 (python3) total-vm:8117956kB, anon-rss:5649844kB, file-rss:0kB, shmem-rss:0kB, UID:1000 pgtables:12544kB oom_score_adj:0
[4772612.968800] oom_reaper: reaped process 1138439 (python3), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB

 

可以看到:

oom-kill之后,就是解释那个被killed的程序的pid和uid
Out of memory: Killed process 1138439 (python3) total-vm:8117956kB, anon-rss:5649844kB,内存不够
total_vm:总共使用的虚拟内存 Virtual memory use (in 4 kB pages)
8117956/1024(得到MB)/1024(得到GB)=7.741GB
rss:常驻内存使用Resident memory use (in 4 kB pages)
5649844/1024/1024=5.388GB
                       
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值