jstack定位執行緒堆疊資訊

2021-10-03 20:21:02 字數 1122 閱讀 3786

1、找到cpu利用率持續比較高的程序, 命令:

2、找到cpu使用率較高的執行緒id(tid):

ps p 16480 -l -o pcpu,pid,tid,time,tname,cmd
此處為:16498

3、將獲取的執行緒號(十進位制數)轉換成十六進製制

printf "%x\n" 16498
結果:4072

4、結合程序號和執行緒號,利用jstack查到異常**所在行

jstack -l | grep -a 10命令

顯示出錯的堆疊資訊,如下圖:

jstack -l 16480| grep 0x4072 -a 10
-a 10引數用來指定顯示行數,否則只會顯示一行資訊。

可以看到在**的第13行有問題。也就是說是這一句導致cpu占用過高,在優化時,就可以針對這一部分**進行優化。

參考原文

jvm故障分析及效能優化系列文章

jvm故障分析及效能優化系列之一:使用jstack定位執行緒堆疊資訊

jvm故障分析及效能優化系列之二:jstack生成的thread dump日誌結構解析

jvm故障分析及效能優化系列之三:jstat命令的使用及vm thread分析

jvm故障分析及效能優化系列之四:jstack生成的thread dump日誌執行緒狀態

jvm故障分析及效能優化系列之五:常見的thread dump日誌案例分析

jvm故障分析及效能優化系列之六:jvm heap dump(堆轉儲檔案)的生成和mat的使用

jvm故障分析及效能優化系列之七:使用mat的histogram和dominator tree定位溢位源

還有一篇

jvm調優之jstack找出最耗cpu的執行緒並定位**

pacs定位線 PACS中MR序列定位線的繪製

pacs中mr 序列定位線的繪製 吳恢遠吳恢公升 摘要 根據核磁共振原理成像的 mr裝置 其掃瞄序列中的影象成像引數複雜 如何使臨床醫生定位當前 mr影象切片在組織器官中的確切位置是個很重要的問題 基於dicom3.0 標準結合 pacs 系統的應用 討論了mr 序列中定位線繪製的解 決方法 期刊名...

計算幾何 點定位(線段,三角形,多邊形)

1.滿足向量 ac ab 0,使c點滿足在ab的直線上 2.滿足c在ab構成的矩形內,使c點排除在ab的延長線和反向延長線上 注意 考慮豎直和水平的情況,橫座標和縱座標都要判斷。bool dot line point a,point b,point c 點在平面內與三角形三個點構成的三個三角形的面積...

Python 執行緒之定位與銷毀

背景 開工前我就覺得有什麼不太對勁,感覺要背鍋。這可不,上班第三天就捅鍋了。我們有個了不起的後台程式,可以動態載入模組,並以執行緒方式執行,通過這種形式實現外掛程式的功能。而模組更新時候,後台程式自身不會退出,只會將模組對應的執行緒關閉 更新 再啟動,6 得不行。於是乎我就寫了個模組準備大展身手,結...