centos中分析java佔用大量CPU資源的原因__centos

來源:互聯網
上載者:User

1,使用top命令,找到java進程的PID,我這裡找到的PID為16871。

2,找到該進程後,就要定位具體線程或代碼,首先顯示線程列表,並按照CPU佔用高的線程排序:
ps -mp 16871 -o THREAD,tid,time | sort -rn

顯示結果如下:
USER     %CPU PRI SCNT WCHAN  USER SYSTEM   TID     TIME
root     90.5  19    – –         –      –  9521 01:16:48
root     90.1  19    – –         –      –  9522 01:02:16

找到了耗時最高的線程9521,佔用CPU時間有1個多小時了。

將需要的線程ID轉換為16進位格式:
printf "%xn" 9521
2531

最後使用jvm命令列印線程的堆棧資訊:
 jstack 16871 |grep 2531 -A 30

 

這樣就找到佔用java,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.