背景
最近在项目中碰到一个问题,tomcat怎么都起不来,但是没有报任何的错误,当时请教了师兄,师兄一下就解决的,咨询之后,依赖的外部服务挂掉了,解决方法就jstack,然后看阻塞在哪个线程。所以为了下次不要犯这个错误,这里记录一下
jstack
- jstack是jdk自带的线程堆栈分析工具,使用该命令可以查看或者导出线程的堆栈信息。
jstack -l :进程挂起,强制打印堆栈信息,一般情况不使用
jstack -F :打印java和native c/c++框架的所有栈信息,一般应用排查不使用
jstack -m :一般不用
示例
jps查看java进程
jstack查看指定进程的当前堆栈情况:jstack pid
将指定进程的当前堆栈情况记录到某个文件中
jstack -l pid > /root/jstack_info.txt