linux下tomcat占用cpu过高问题排查

在服务器报cpu过高时,可使用以下命令,快速导出堆栈信息,以方便查看具体的问题。

1,使用高级命令定位异常进程。可以看见3653的cpu和内存占用率都非常高

發inux下tomcat占用cpu过高问题排查"

此时可以再执行ps ef | grep java,查看所有的java进程,在结果中找到进程号为12836的进程,即可查看是哪个应用占用的该进程。

2,使用最高- h - p进程号查看异常线程

發inux下tomcat占用cpu过高问题排查"

3,使用printf“% x \ n”线程号将异常线程号转化为16进制

# printf“% x \ n”线程号

發inux下tomcat占用cpu过高问题排查"

發inux下tomcat占用cpu过高问题排查“

4,使用jstack进程号| grep 16进制异常线程号故事本来来定位异常代码的位置(最后的故事本来是日志行数,也可以输出为文本文件或使用其他数字)。可以看到异常代码的位置。

發inux下tomcat占用cpu过高问题排查“

發inux下tomcat占用cpu过高问题排查"

可将错误信息给研发同事看看原因


linux下tomcat占用cpu过高问题排查