java運行服務卡住排查——jstack

使用jstack

 

介紹:

  1. jstack命令用於打印指定Java進程、核心文件或遠程調試服務器的Java線程的Java堆棧跟蹤信息。
  2. jstack命令可以生成JVM當前時刻的線程快照。線程快照是當前JVM內每一條線程正在執行的方法堆棧的集合,生成線程快照的主要目的是定位線程出現長時間停頓的原因,如線程間死鎖、死循環、請求外部資源導致的長時間等待等。
  3. 如果java程序崩潰生成core文件,jstack工具可以用來獲得core文件的java stack和native stack的信息,從而可以輕鬆地知道java程序是如何崩潰和在程序何處發生問題。
  4. 當指定的進程在64位Java虛擬機上運行時,可能需要指定-J-d64選項,例如:jstack -J-d64 -m pid。
  5. 該命令可能在未來的版本中不可用!!!

 

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章