分享下我一年中遇到的线上程序假死问题,都是如何排查的
一下分析过程,假设你脱离了apm工具,或者像阿里巴巴提供的工具
其实分析过程挺简单的,基本都是因为线程watting
1、一般先看程序日志是否正常,如果日志没有任何打印
2、curl "127.0.0.1:port"看看服务是否可以正常访问,再ss -s看看连接数什么的
如果无法访问
3、接着用 top 或者 jps -v 或者 ps -ef | grep java查看服务进程id (pid)
4、jstack pid >> demo.log
5、直接看log,或者使用如https://jstack.review/#tda_1_dump 等网关分析一下线程信息
6、如果是线程堵死导致的,一般会看到很多线程watting着一个线程,一般被watting的线程也会有代码提示,一般也就定位到问题了
=======================执行到这里======================