java项目问题排查

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Qizonghui/article/details/80926334

我之前遇到过好几次程序打不开,进程存在;后来多次排查是因为代码的原因造成的;查询数据太多造成了堵塞等;

我们可以从以下几个方面去查:

1.进程是否存在:jps

2.导出堆栈信息:jmap jhat

3.定位线程堆栈,根据堆栈信息我们可以定位到具体代码,在jvm调优中使用的比较多;

记下来我们详细操作一下;

1),查找对应程序的进程号pid

2)生成一个堆栈信息:jmap -dump:format=b,file=heapdump.hprof Pid

生成文件heapdump.hprof;

deadlock:死锁;

Runnable:执行中;

Waiting on condition:等待资源

Waiting on monitor entry :等待获取监视器;

Suspended:暂停

Object.wait()/TIMED_WAITING:对象等待中

Blocked:阻塞

Parked:停止

3)jstack -l PID >> jstack.txt 对jvm使用情况实时监控;

综合两个文件我们可以找道到底是哪个文件在我们项目中作怪;

其实针对于heapdump.hprof文件有专门的一个分析软件;可以看到那个进程所占项目比例较大,就可以快速判断;需要这个的可以留言邮箱;互相学习


猜你喜欢

转载自blog.csdn.net/Qizonghui/article/details/80926334