java应用CPU过高查找原因

用top查到占用cpu最高的进程pid

根据进程ID找到占用CPU高的线程

ps -mp 60355 -o THREAD,tid | sort -r

用 printf "%x \n" 将tid换为十六进制:xid

printf "%x \n" 6036

根据16进制格式的线程ID查找线程堆栈信息

jstack 60355 |grep ebcb -A 50

用 jmap 导出堆文件

 jmap -dump:file=tenant.hprof 154181

打开JVisualVM

C:\Program Files\Java\jdk1.8.0_241\bin

点击 文件  装入