JVM調優jstack找出最耗cpu的執行緒&定位問題程式碼
一、伺服器環境
jdk1.8 有多個tomcat容器執行java程式
二、用到的命令
top、printf、jstack、grep
三、排查過程
-
用top查出哪個java程式最消耗cpu命令:top 如下圖
這三個指標可以看出程式PID為87010的程式很消耗資源 -
根據程式87010查出哪個執行緒最消耗cpu命令:top -Hp 87010 如下圖 通過上圖三個指標可以看出執行緒90255比較消耗資源,TIME列就是各個Java執行緒耗費的CPU時間。
-
printf “%x\n” 90255 得到一個16進位制的數值 1608f
4.jstack 87010|grep 1608f,它用來輸出程式90255的堆疊資訊,然後根據執行緒ID的十六進位制值grep,如下:
可以看出是執行緒池ThreadPoolExecutor的問題,ok問題定位到了。
我愛你
為了找你
我搬進了鳥的眼睛裡
我注視著風的方向
卻忘記了獵人的槍響
相關文章
- JVM找出佔用CPU最高的執行緒JVM執行緒
- 執行緒剖析-助力定位程式碼層面高耗時問題執行緒
- 執行緒剖析 - 助力定位程式碼層面高耗時問題|得物技術執行緒
- 【深入理解JVM】8、JVM實戰調優+GC演算法+JVM調優如何定位問題+常見的定位JVM優化命令【面試必備】JVMGC演算法優化面試
- 當CPU飆升時,找出PHP中可能有問題的程式碼行PHP
- 如何利用執行緒堆疊定位問題執行緒
- 找出最耗資源的sqlSQL
- 執行緒繫結cpu核心的程式碼研究執行緒
- Java程式效能調優阿姆達爾定律、快取元件、並行開發、執行緒池、JVM調優Java快取元件並行執行緒JVM
- java多執行緒問題 多核cpu遇上java多執行緒,求解釋Java執行緒
- 多執行緒-執行緒安全問題的產生原因分析以及同步程式碼塊的方式解決執行緒安全問題執行緒
- JAVA CPU100%與執行緒死鎖定位Java執行緒
- 效能調優 jstackJS
- jstack判斷執行緒狀態JS執行緒
- 記一次jstack命令定位問題JS
- 利用jstack定位典型效能問題例項JS
- (轉)JVM調優常用命令(jstat、jmap、jstack)JVMJS
- JVM問題定位工具JVM
- 多執行緒-生產者消費者問題程式碼2並解決執行緒安全問題執行緒
- 執行緒問題執行緒
- 多執行緒程式設計,處理多執行緒的併發問題(執行緒池)執行緒程式設計
- 多執行緒解n王后問題的優化執行緒優化
- 多執行緒下的程式同步(執行緒同步問題總結篇)執行緒
- jvm系列(四):jvm調優-命令大全(jps jstat jmap jhat jstack jinfo)JVMJS
- C#多執行緒下的調優C#執行緒
- 如何使用jstack分析執行緒狀態JS執行緒
- 如何使用 jstack 分析執行緒狀態JS執行緒
- JVM中的執行緒行為JVM執行緒
- MySQL多執行緒併發調優MySql執行緒
- Tomcat執行緒模型 BIO模型原始碼與調優Tomcat執行緒模型原始碼
- JVM執行緒和記憶體溢位問題排查思路JVM執行緒記憶體溢位
- 深入理解JVM(③)執行緒與Java的執行緒JVM執行緒Java
- java多執行緒執行問題Java執行緒
- 多執行緒問題執行緒
- 理解JVM(六):執行緒安全和鎖優化JVM執行緒優化
- 快速定位隱蔽的sql效能問題及調優SQL
- 使用JDK自帶的工具jstack找出造成執行程式死鎖的原因JDKJS行程
- 效能調優(cpu/IO/JVM記憶體分析)JVM記憶體