1、通过top
来查看当前资源占用情况,选择要查看的pid
2、通过top -Hp pid
查看当前pid下所有线程的资源使用情况
3、对占用资源高的线程pid转为16进制
4、jstack -l pid > a.txt
导出当前进程id(不是线程的)栈信息,打开后匹配对应的线程16进制id,找到对应的耗资源的线程
5、我这里发现的是4个GC线程,随后jmap -dump:live,format=b,file=dump2020.dat pid
导出dump文件
6、使用jvisualVM进行分析,查看哪个对象占用最高
注意:通过jps查询进程id,若jps查询不到说明当前用户权限不够;cd /tmp/hsperfdata_
userName目录下查看,哪个用户下有进程id就用哪个用户登陆操作。或通过ps -ef|grep java
查询哪个用户部署的。
截图为dev环境的正常进程