您好,登錄后才能下訂單哦!
1. jstack命令
查看某個Java進程內的線程堆棧信息。
jstack可以定位到線程堆棧,根據堆棧信息我們可以定位到具體代碼,所以它在JVM性能調優中使用得非常多。
2. 熱點CPU問題:
cpu占用率持續的比較高
定位步驟:
jps -m -l? ? ? ? ? ? ? ? ? ?列出正在運行的進程----這里是否用top命令更好一些?top才能看出誰占用cpu最高? ? ? ? ? ? ? ? ? ? ? ?
top -H -p pid? ? ? ? ? ?找出該進程內最耗費cpu的線程
printf "%x\n" tid? ? ? 線程id轉化為16進制
jstack pid | grep 轉化為16進制的tid -A 50
備注1:展示的信息中,重點關注自己編寫的代碼,截圖給開發
備注2:有可能一次jstack不能捕捉到需要的信息,那么需要多次執行,因為抓的是那一瞬間的狀態
3.?java.lang.stackoverflowerror,fatal:stack size too small
參數:-Xss:每個線程的棧大小,用于保存函數調用、返回地址等,默認1M,如果報錯,改為2M
代碼:捕獲內存快照,去排查代碼,有可能是遞歸調用的層次太多了
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。