查看线程信息php
tomcat有时候会遇到全部操做都响应很慢,或者一直没有响应的状况。若是这个时候经过日志没法看到错误信息。可能就很差分析问题出处。java
这种状况能够看一下tomcat的线程信息,看看都是在进行什么操做。tomcat
参考网址https://www.cnblogs.com/shengulong/p/8513652.html工具
jstack 线程ID 能够查看某个线程的堆栈状况,特别对于hung挂死的线程,能够使用选项-F强制打印dump信息jstack -F pidspa
jstack定义: jstack是java虚拟机自带的一种堆栈跟踪工具。用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的缘由,如线程间死锁、死循环、请求外部资源致使的长时间等待等。线程
PS : 在实际运行中,每每一次 dump的信息,还不足以确认问题。建议产生三次 dump信息,若是每次 dump都指向同一个问题,咱们才肯定问题的典型性。也就是多进行几回线程快照,观察变化,查看问题所在。日志
参考命令 jstack pid >run.log 而后把run.log文件用附件“查看线程日志”工具打开。htm
主要观察几种状态对象
而后查看每种状态定位到哪段代码信息。
查看Deadlock
查看monitors
找到Threads最对的代码
日志文件中搜索一共出现多少次