java项目问题排查
我之前遇到过好几次程序打不开,进程存在;后来多次排查是因为代码的原因造成的;查询数据太多造成了堵塞等;
我们可以从以下几个方面去查:
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文件有专门的一个分析软件;可以看到那个进程所占项目比例较大,就可以快速判断;需要这个的可以留言邮箱;互相学习