在服务器报cpu太高时,可以使用如下命令,快速导出堆栈信息,以方便查看具体的问题。
java
一、使用top命令定位异常进程。能够看见3653的CPU和内存占用率都很是高bash
此时能够再执行ps -ef | grep java,查看全部的java进程,在结果中找到进程号为12836的进程,便可查看是哪一个应用占用的该进程。服务器
二、使用top -H -p 进程号查看异常线程ide
三、使用printf "%x\n" 线程号将异常线程号转化为16进制线程
# printf "%x\n" 线程号
四、 使用jstack 进程号|grep 16进制异常线程号 -A30来定位异常代码的位置(最后的-A30是日志行数,也能够输出为文本文件或使用其余数字)。能够看到异常代码的位置。3d
可将错误信息给研发同事看看缘由
日志