返回 登录
0

Java程序占用CPU过高问题排查

阅读3015

1.查看进程占多少CPU

top -p 25484

图片描述
2.查看进程里各个线程占多少CPU

top -p 25484 -H

图片描述
3.查看线程的执行栈信息
先把线程号转换为16进制。

printf ‘%0x\n’ 28616

6fc8
再通过jstack命令看看这个线程在干嘛
$jstack 25484 | grep -A 10 6fc8
连续执行上述jstack命令多次,不出意料你会发现代码总是停留在某一行或某一个循环块内,如果是停留在某一行说明该行代码执行起来非常耗CPU,如果是停留在某一个循环块内说明这是个死循环。

学习Java的同学注意了!!!
学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:454297367 我们一起学Java!

评论