mark一下, 今天確實用這個方法找到了問題
1. top找到目標程序,記下pid
2. top –p pid, 並用shift+h開啟執行緒模式
這樣可以看到這個程序中,到底哪個執行緒占用大量cpu
記下threadid,tid
3. jstack檢視該執行緒實時的stack情況
jstack [pid]|grep -a 10 [tid(16進製制)] , 10表示列印stack的長度,可以選擇列印更多的stack資訊
比如,jstack 21125|grep -a 10 52f1
十六進製制的轉換,用calc計算器的程式設計師模式
2014-10-10
JStack分析cpu消耗過高問題
1.top找到目標程序,記下pid 2.top p pid,並用shift h開啟執行緒模式 這樣可以看到這個程序中,到底哪個執行緒占用大量cpu 記下threadid,tid 3.jstack檢視該執行緒實時的stack情況 jstack pid grep a 10 tid 16進製制 10表示列...
jstack分析cpu占用100
背景 執行測試程式後,top命令發現某個程序 pid 占用cpu達到100 檢視哪個執行緒占用最多資源 ps mp pid o thread,tid,命令檢視這個程序下面的所有執行緒占用情況。發現執行緒324占用最多。使用jstack進行跟蹤 jstack pid 進行檢視輸出到臨時檔案 jstac...
linux 分析程序占用CPU過高
重點是檢視程序的執行緒中,哪個執行緒占用cpu過高,然後用gdb附加到程序,除錯執行緒,看是否有死迴圈或者死鎖等問題,步驟如下 1 先用ps grep找出該死的程序pid,比如 1706 gdb attach 到程序號碼 1706 仍然在gdb中 info threads 結果大致如下 gdb in...