這是Bella醬的第 58 期分享java
做者 | Bella醬web
事情的原由是這樣的面試
莫慌,登陸機器top命令看一看top -H
緩存
一共2341個thread,其中2339個thread處於sleeping狀態,盲猜項目中用到線程池的地方,線程處理完任務並無將處於空閒狀態的線程回收掉,用arthas驗證下本身的猜測。服務器
java -jar arthas-boot.jar
啓動arthas微信
用dashboard
命令看下當前線程池等狀況多線程
發現xx pool-0果真有好多線程處於waiting狀態,驗證個人想法。此時,若是你多線程執行的那個任務是用的同事開發的一個框架,那你就能夠這個截圖甩給同事了;若是是本身控制的線程池,那就要研究研究啦。app
推薦幾個經常使用的arthas命令:框架
-
jad 類全路徑
-
可查看類的源碼,check服務器上運行的代碼的正確性,以防分支太多,有同事解決衝突的時候將本身代碼給改錯了
-
trace 類全路徑 方法名
-
可查看方法的調用鏈,以及調用鏈上每一步的耗時狀況,對於定位和分析RT太高很是有幫助。
-
watch 類全路徑 方法名 {params,returnObj,throwExp} -x 3
-
查看方法的入參、返回值、異常狀況,-x 3指定遍歷返回結果的深度爲3,通常3層ok了。watch命令可動態監聽該方法的調用狀況,但並非無限制的。
-
thread -b
-
查找阻塞其餘線程的線程
-
thread -n 10
查找當前最忙的10個線程編輯器
-END-
更多精彩文章
1. 在阿里當PM都須要作什麼?Bella醬親身經歷告訴你!
2. 自定義Spring bean容器瞭解一下?實戰及原理解讀
4. 進大廠,你必須掌握的CPU緩存基礎,看這篇文章就夠了!
5. 大白話講NIO~!
若是你喜歡本文
請長按二維碼,關注 Bella的技術輪子
轉發至 朋友圈,是對我最大的支持
喜歡就點個在看吧
本文分享自微信公衆號 - Bella的技術輪子(wheel_of_bella)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。