文章转载自内网,挺不错的,分享下
程序有时会出现CPU使用率过高的情况,以下是对jvm线程的一次排查。
首先,top命令看一下情况,是否为java的进程导致的CPU使用率过高,CPU使用率理论上不应该超过CPU核数*100%。
排查步骤
步骤一
命令
top
步骤二
继续使用top命令,但这次是看这个进程包含的线程cpu使用情况
命令:
top -Hp 29605 -d 1 -n3
步骤三
图中的nid,是根据第二步的top中的PID转换为16进制后,查到的。
命令:
jstack -l 29605|grep -A 20 "74d8"
到此基本定位了问题,接下来是分析代码看如何解决了