工作总结——CPU占用率过高排查

以我们最近出现的一个实际故障为例,介绍怎么定位和解决这类问题。

 

根据top命令

工作总结——CPU占用率过高排查_第1张图片

发现PID为9162的java进程占用CPU高达201.6%,出现故障。

通过ps aux | grep PID命令。可以进一步看出,问题发生在hdfs写hbase过程中的io问题

首先显示线程列表:

ps -mp pid -o THREAD,tid,time

这里使用命令

ps -mp 9162 -o THREAD,tid,time

工作总结——CPU占用率过高排查_第2张图片

找到了耗时最高的线程13111、13085和13100

其次将需要的线程ID转换为16进制格式:

printf "%x\n" tid

这里使用命令 printf  "%x\n" 13100

 

最后打印线程的堆栈信息:

jstack pid |grep tid -A30

此处使用命令 jstack 9162 >> java.txt导出堆栈信息,从中查找

 

工作总结——CPU占用率过高排查_第3张图片

此时已经发现问题所在。好吧  我并不理解。。。这特么是三方jar包的问题啊???

你可能感兴趣的:(工作总结)