如何排查CPU爆百的问题?

在linux 中如何排查CPU爆100%甚至200%+的问题,有啥好的工具可以使用呢?或有啥排查的步骤 ?

一、通过jdk自带包里面的工具
1.通过top找出cpu高的PID
2.top -H -pPID 找到cpu占用率比较高的线程tid
3.其次将需要的线程ID转换为16进制格式:
printf “%x\n” tid
如 printf “%x\n” 21276

二、jmap使用
1.通过top找出内存占用高的PID
1.jmap -dump:format=b,file=/mnt/result.data PID
导出改PID的内存情况
2.通过eclipse的mat工具或者其他工具,导入这个result.data文件,可以可视化看具体的内存情况
排序找内存占用比较大的对象

三、使用perf工具

直接top监控下 看下是哪个进程影响的 再去分析那个进程