Java进程假死案例集合

1. 案例1

今天通过域名调一个接口,10次中偶尔有1-2次请求失败,域名后绑定VIP,VIP后面为5台应用服务器。

1.1 范围缩小

在这里插入图片描述
直觉怀疑为某一台有有问题,于是单独的进行接口调用发现确实为其中一台有问题

1.2 单台检查

本能上来后首先查看进程,进程正常

jps

telnet本地服务端口8099,也是正常的

telnet 127.0.0.1 8099

单独的curl是出现不可访问,初步怀疑为进程假死。

(1) jstack看一下是否有死锁,无死锁

jstack -F pid

(2) 看一下gc情况

jstact -gcutil pid 5000

在这里插入图片描述
历史FGC较多,FGC时间非常长,内存耗尽。

(3)查看tomcat日志

[ERROR] fail to async write log SelfLog, GC overhead limit exceeded
Exception in thread "Druid-ConnectionPool-Destroy-962491367" java.lang.OutOfMemoryError: GC overhead limit exceeded
Exception in thread "http-bio-8099-Acceptor-0" java.lang.OutOfMemoryError: GC overhead limit exceeded

核心要点:GC overhead limit exceeded导致Druid-ConnectionPool销毁

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值