歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> 學習Linux >> CentOS中分析java占用大量CPU資源的原因

CentOS中分析java占用大量CPU資源的原因

日期:2017/3/6 9:46:22   编辑:學習Linux

CentOS中分析java占用大量CPU資源的原因


CentOS中分析java占用大量CPU資源的原因


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 – – – – 952201:02:16

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

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

最後使用jvm命令打印線程的堆棧信息:
jstack 16871 |grep 2531-A 30

這樣就找到占用java,cpu資源的代碼了,接下來還得分析代碼執行的原因了。

http://xxxxxx/Linuxjc/1134289.html TechArticle

Copyright © Linux教程網 All Rights Reserved