JVM定位佔用cpu過高堆棧資訊(Linux)__Linux

來源:互聯網
上載者:User

第一步:使用top命令查看進程佔用CPU的情況,擷取PID

top                                                                                                                                                                    

 

從圖中可以看出cpu佔用高達46.5%的進程ID是16243


第二步:使用top -H -p命令擷取進程中線程資訊(其中H:顯示進程中線程的情況,p表示進程pid)

top -H -p 16243


上圖中最高的線程pid=17466

第三步:擷取最高的線程pid(十進位,裝換成十六進位),十進位轉十六進位可以手動計算也可以用python -c "print hex(線程PID)"


第四步:查看線程堆棧資訊,jstack pid(進程pid) | grep 線程pid


grep有三個比較好用的參數,-A 10顯示關鍵字之後10行 -B 10 顯示關鍵字之前10行 -C 10 顯示關鍵字前後10行

從上圖中可以看到doFreshRoomChatInfoFromRedis方法消耗了大量CPU時間。到了這裡,剩下的就是分析代碼了。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.