龙空技术网

java 进程假死原因_Java进程假死案例集合

解影视 43

前言:

今天我们对“java进程假死排查”大约比较看重,兄弟们都想要了解一些“java进程假死排查”的相关资讯。那么小编也在网摘上汇集了一些关于“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销毁

标签: #java进程假死排查