本文主要是介绍java运行服务卡住排查——jstack,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
使用jstack
介绍:
- jstack命令用于打印指定Java进程、核心文件或远程调试服务器的Java线程的Java堆栈跟踪信息。
- jstack命令可以生成JVM当前时刻的线程快照。线程快照是当前JVM内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。
- 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。
- 当指定的进程在64位Java虚拟机上运行时,可能需要指定-J-d64选项,例如:jstack -J-d64 -m pid。
- 该命令可能在未来的版本中不可用!!!
jstack [ options ] pid
pid:Java进程的ID,可以通过jps命令查询到。
options 参数说明
-F 当 jstack [-l] pid 没有响应时,强制打印一个堆栈转储。
-l 打印关于锁的其他信息,比如拥有的java.util.concurrent ownable同步器的列表。
-m 打印包含Java和本机C/ C++帧的混合模式堆栈跟踪。
-h 打印帮助信息
-help 打印帮助信息
一般使用 jstack pid 查看错误信息,如:
转自:https://zhuanlan.zhihu.com/p/475571849
这篇关于java运行服务卡住排查——jstack的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!