1 找出应用线程pid (jps or ps -ef|grep java)
2 查看该pid下线程对应的系统占用情况。top -Hp pid
3 找出cpu占用比较高的线程 id 并转换为16进制
4 保存当前的java线程栈 jstack -l pid>/1.txt
5 通过16进制线程id搜索对应的线程情况,定位到相应代码
6 如若需要分析dump文件信息可导出dump文件 jmap -dump:live,format=b,file=/dump201612271310.dat pid
排查问题的套路,大同小异。有篇文章,写的不错。
遇到线上问题不要慌,首先确认排查问题的思路:
查看日志
查看CPU情况
查看TCP情况
查看java线程,jstack
查看java堆,jmap
通过MAT分析堆文件,寻找无法被回收的对象
链接如下
[https://blog.csdn.net/lengyue309/article/details/80590119](https://blog.csdn.net/lengyue309/article/details/80590119)
java应用线上问题排查常规操作
最新推荐文章于 2021-09-09 19:56:04 发布