美文网首页
tomcat容器异常退出的解决过程

tomcat容器异常退出的解决过程

作者: 有时右逝 | 来源:发表于2020-10-05 11:00 被阅读0次

前言

早上一个用户微信反馈,悠悠拍卖行的验证码不能出现。一开始我以为网络的问题,让他重启下软件,结果还是无法解决,于是开电脑,访问服务器,发现服务的容器退出了。发现问题还好,但是找到问题出现的时间和日志是个重点,特此记录下本次问题的过程。

过程

  • 查看docker的退出时间
    docker ps -a
    发现是6个小时之前退出的。

  • 查看docker的自身日志
    docker logs --tail=100 xxx容器id
    没发现什么错误提示。

  • 进入容器内部,查看tomcat的日志
    docker exec -it xxx容器id /bin/bash

继续没有结果。

org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header
 Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.
    java.lang.IllegalArgumentException: Request header is too large

  • 查看容器所在服务器本身的目录

目录 /var/log

  • 排序日志
    [root@centos03 log]# ls -lat

  • 确定应该查看哪个日志文件
    我的服务是tomcat容器,服务器的内存只有2G,因此猜测是内存溢出,进程被关。
    该日志通常位于 messages中

  • 定位内存溢出的日志
    [root@centos03 log]# tail -n 1000 messages | grep out

[root@centos03 log]# tail -n 1000 messages | grep out
Oct 5 03:04:56 centos03 kernel: [<ffffffff9f998146>] out_of_memory+0x4b6/0x4f0

  • 猜测原因
    此时内存超出,需要考虑程序自身的行为。定时任务有3个,服务器物资统计、定时同步封号数据、删除过期数据。但是时间不符合。
    结合应用的时间点,应该是同步封号数据出现问题。
    应该是程序正在执行一些计划任务,此时又出现同步数据的操作。导致内存溢出。

  • 解决

最终的定位问题应该是上传文件过大引发的。目前修改程序的文件大小限制。限制为10MB
提交后等待观察。

相关文章

网友评论

      本文标题:tomcat容器异常退出的解决过程

      本文链接:https://www.haomeiwen.com/subject/gmzouktx.html