linux----CPU使用率过高问题定位过程
1、确定本地网络是否存在延迟或丢包情况
关注点:
1、响应时间
2、丢包率
2、TOP命令(这里先关注CUP使用情况,后期再详细说明)
从上图我们可以看出,3373的进程占用了 %cpu 313.2
说明:
由于该服务器CPU逻辑核数为4核,总共为 400 该进程 占用了 313.2/400
这里我们获取的了进程ID为3373
3、查看线程ID
ps -mp 进程id -o THREAD,tid,time | sort -rn
从上图我们可以看出
1、有占了 cpu 95.8的线程,但是没有TID,这些我们忽略就行
2、重点关注蓝色框中带有TID的线程
4、把线程ID转化为16进制
printf '%x\n' 线程id
得到了d35这样的一个线程ID
5、根据线程的16进程表达来定位是个什么东西
jstack 进程id | grep 线程16进制 -A60
得出了此类信息
这里是一个垃圾回收的线程,由于在我的服务器中,实在找不到占用CPU高的线程
所以就找了这么一个东西来充当了
那么就有同学问了,这里的东西,我们测试人员也看不懂啊,咋办
没事,我也不懂,都是这样截图给开发,让他帮看看是一个什么东西