假设生产环境出现CPU占用过高,请谈谈你的分析思路和定位
目的
找出引出问题的代码行!日志只能报错代码,不能解决cpu过高的问题
步骤
- 先用top命令找出cpu占比最高的
确定进程PID - ps -ef或者jps进一步定位,得知是一个怎么样的一个后台程序惹事
ps -ef | grep 5101
5101 4063 36 08:25 pts/2 00:11:25 java club.eryastudio.test.Demo2
- 定位到具体线程或者代码
ps -mp 进程 -o THREAD,tid,time
ps -mp 1501 -o THREAD,tid,time
root 35.6 19 - - - - 5102 00:11:35
4.将需要的线程ID转换为16进制格式(英文小写格式)
将线程号5102转为小写16进制 13ee
5.jstack进程ID | grep(16进制线程ID小写英文) -A60
jstack 5101 | grep 13ee -A60
具体到某一行代码了