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核心的程式碼研究執行緒
- (轉)JVM調優常用命令(jstat、jmap、jstack)JVMJS
- JAVA CPU100%與執行緒死鎖定位Java執行緒
- jstack判斷執行緒狀態JS執行緒
- 記一次jstack命令定位問題JS
- 利用jstack定位典型效能問題例項JS
- 如何使用jstack分析執行緒狀態JS執行緒
- JVM問題定位工具JVM
- Tomcat執行緒模型 BIO模型原始碼與調優Tomcat執行緒模型原始碼
- 使用JDK自帶的工具jstack找出造成執行程式死鎖的原因JDKJS行程
- C#多執行緒下的調優C#執行緒
- JVM執行緒和記憶體溢位問題排查思路JVM執行緒記憶體溢位
- JVM中的執行緒行為JVM執行緒
- MySQL多執行緒併發調優MySql執行緒
- 程式碼注入之遠端呼叫執行緒的一些問題執行緒
- 效能調優命令之jstackJS
- 深入理解JVM(③)執行緒與Java的執行緒JVM執行緒Java
- ArrayList 的執行緒安全問題執行緒
- 理解JVM(六):執行緒安全和鎖優化JVM執行緒優化
- SQL優化案例-從執行計劃定位SQL問題(三)SQL優化
- Oracle優化案例-從執行計劃定位SQL問題(三)Oracle優化SQL
- cpu、核與執行緒執行緒
- 執行緒和程式的優缺點執行緒
- 執行緒(一)——執行緒,執行緒池,Task概念+程式碼實踐執行緒
- java效能調優記錄(執行緒阻塞)Java執行緒
- JVM程式用一個主執行緒來執行main()方法JVM執行緒AI
- 效能調優(cpu/IO/JVM記憶體分析)JVM記憶體
- 03 執行緒安全問題執行緒
- SimpleDateFormat 執行緒安全問題ORM執行緒
- parallelStream中的執行緒安全問題Parallel執行緒
- 從Java到JVM到OS執行緒的優先順序JavaJVM執行緒
- Java多執行緒中執行緒安全與鎖問題Java執行緒
- AMD執行緒撕裂者2990WX開箱圖賞 32核心64執行緒最強CPU執行緒