线上CUP过高,定位代码
最近出现的一个实际故障为例,介绍怎么定位和解决这类问题。
首先在linux系统中,输入top命令查看对应cpu消耗最高的线程,在找对应的pid.
假设以我这个为例
发现改进程的pid是:8583
通过ps aux | grep PID命令,可以进一步确定是什么进程出问题了
首先显示线程列表:
# ps -mp pid -o THREAD,tid,time
其次将需要的线程ID转换为16进制格式:
最后打印此进程下线程的堆栈信息:
# jstack pid | grep tid -A 60