– 线程的名称;经常被中间件厂商用来识别线程的标识,一般还会带上被分配的线程池名称以及状态 (运行,阻塞等等.)
– 线程类型 & 优先级,例如 : daemon prio=3 中间件程序一般以后台守护的形式创建他们的线程,这意味着这些线程是在后台运行的;它们会向它们的用户提供服务,例如:Java EE应用程序
– Java线程ID,例如 : tid=0x000000011e52a800 这是通过 java.lang.Thread.getId()
获得的Java线程ID,它常常用自增长的长整形 1…n 实现
– 原生线程ID,例如 : nid=0x251c ,原生线程ID可以让你获得诸如从操作系统的角度来看那个线程在你的JVM中使用了大部分的CPU时间等这样的相关信息
– Java线程状态和详细信息,例如: waiting for monitor entry [0xfffffffea5afb000] java.lang.Thread.State: BLOCKED (on object monitor)
可以快速的了解到线程状态极其当前阻塞的可能原因
– Java线程栈跟踪;这是目前为止你能从线程堆栈中找到的最重要的数据. 这也是你花费最多分析时间的地方,因为Java栈跟踪向提供了你将会在稍后的练习环节了解到的导致诸多类型的问题的根本原因,所需要的90%的信息。
问题描述
linux系统下,线上环境Tomcat进程CPU突然飙升到200%
问题解决
查找对应Tomcat进程号
ps -ef|grep tomcat8_itstyle
导出堆栈信息,查询进程PID为8564