linux----CPU使用率过高问题定位过程

Posted 乱来

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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高的线程

  所以就找了这么一个东西来充当了

  那么就有同学问了,这里的东西,我们测试人员也看不懂啊,咋办

  没事,我也不懂,都是这样截图给开发,让他帮看看是一个什么东西

 

以上是关于linux----CPU使用率过高问题定位过程的主要内容,如果未能解决你的问题,请参考以下文章

解决linux cpu占用不高但是负载很高

线上Java程序导致服务器CPU占用率过高的问题排除过程

线上Java程序导致服务器CPU占用率过高的问题排除过程

linux CPU使用率过高或负载过高的处理思路

Java程序导致服务器CPU占用率过高的问题排除过程

记一次线上Java程序导致服务器CPU占用率过高的问题排除过程