如何定位占用cpu过高的线程
近来发现平台应用响应越来越慢,通过top命令发现,cpu占用率越来越高
1. 首先根据top命令,发现占用cpu最高的进程PID:3075.
通过ps aux | grep PID命令,进一步查看当前进程的具体信息。
2. 显示当前进程下的所有线程列表
ps -mp pid -o THREAD,tid,time
找到耗时最高的线程TID,并将其线程ID转换为16进制格式:
printf "%x\n" tid
3. 打印线程的堆栈信息,thread dump
jstack pid |grep tid -A 30
进一步分析堆栈信息,就会定位到问题所在