1、查看具体是哪个进程的load比较高
// 查看进程 按CPU占用排序
ps -aux --sort -pcpu
//最占CPU的10个
ps -aux --sort -pcpu | head -10
//top -c 实时
2、查看这个进程中每个线程的cpu占用率
ps -Lp 15047 cu
top -Hp 进程ID 显示一个进程ID的线程运行信息列表
3、查看这个线程的堆栈,可以定位到具体是什么代码导致
jstack java进程id | grep 16进制的线程id -C5 --color
// -C5是输出上下5行
jstack 11477 | grep 2f47 -C5 --color
-----------------------------------
----CPU 高的排查过程
第一步:top ####找进程
第二步:top -Hp pid ####找线程
第三步:printf "%x\n" #####线程id --- 10进制的线程id转十六进制的线程id
第四步:jstack pid | grep #####线程id,如果要看详细的就把 jstack pid 到具体文件
----查看jvm内存使用情况
jmap -heap pid
----dump 线程
jmap -F -dump:file=timer.dump pid
-----------------------------------
cpu占用率过高问题排查