我们使用jdk自带的jstack来分析。当linux出现cpu被java程序消耗过高时,以下过程说不定可以帮上你的忙:
1、执行:top
查看高负载的进程
2、top -H -p 28973
查看高负载进程下的高负载线程
把线程号 28973 进行换算成16进制编号:print"%x\n" 28973 ->72d6
3、jstack 28973 >> log.txt
将线程堆栈信息保存为txt文档
4、打开log.txt,find一下72d6
导出进程的堆栈日志,找到72d6 这个线程号
通过跟踪代码,确认有问题的代码方法。