#Java进程CPU使用率高排查
在生产java应用,CPU使用率一直很高,经常达到100%。让开发束手无策,最后经常是运维背锅,其实,有可能是开发代码逻辑有问题,甚至写了死循环~
##排查思路:
- 1 jps获取java进程的pid
- 2 jstack pid >>java.txt 导出CPU占用高进程的线程栈
- 3 top -H -p pid 查看对应的进程的哪个线程占用的CPU较高
- 4 echo “obase=16;PID”|bc 将线程的PID转换为16进制
- 5 在第二步导出的java.txt中查找转换为16进制的线程PID。找到对应的线程栈
- 6 分析负载高的线程栈都是什么业务操作。优化程序并处理问题