Java应用CPU占用100%原因分析(转载)
在linux环境下部署的应用,有时候出于各种原因,出现cpu占用100%的情况。这时候,就需要快速分析定位cpu占用的原因。通常,通过linux系统的top命令,可以看出具体哪个进程占用了过多的cpu资源。但如果发现是java进程,那么就需要进一步分析是java进程中的具体哪个线程出现了问题。1、确定Java应用进程编号使用 jps 或 ps -ef|grep java 命令确定想要分析...
在linux环境下部署的应用,有时候出于各种原因,出现cpu占用100%的情况。这时候,就需要快速分析定位cpu占用的原因。
通常,通过linux系统的top命令,可以看出具体哪个进程占用了过多的cpu资源。但如果发现是java进程,那么就需要进一步分析是java进程中的具体哪个线程出现了问题。
1、确定Java应用进程编号
使用 jps 或 ps -ef|grep java 命令确定想要分析的应用的进程编号
(备注:如果在不知道哪个应用占用cpu高的话,可以先通过top命令找到占用cpu最高的进程ID,再通过id查询线程id,或者直接通过top -H找到占用cpu最高线程)
2、查看Java应用中线程CPU占比
使用top -p 101973 -H 命令查看指定进程下的线程cpu占用比例,分析是具体哪个线程占用率过高,其中 101973 就是通过第一步确定下来的进程编号
3、查看线程信息
从中选择占比较高的线程的编号(PID),并将该PID转换为16进制(printf "%x\n" 线程id)0x5bd8。通过jstack 101973 |grep -A 10 0x5bd8
通过该命令可以分析出线程的具体信息,再通过相应的解决方法来解决cpu占用过高的问题。
---------------------
作者:伪开发人员
来源:CSDN
原文:https://blog.csdn.net/green1893/article/details/72357032
更多推荐
所有评论(0)