cpu使用过高问题定位

  首先查看使用cpu最高的进程,然后找到这个进程下使用cpu过高的线程,然后使用jstack命令,可以找到这个线程正在调用什么方法了,这个被调用的方法导致cpu使用率过高,就找到cpu高的原因了。

  实际操作:

  1、使用top命令,如下图所示:

  

  备注:按住Shift + p  可按照cpu使用率排序

     按住Shift + m 可按照内存利用率排序

  一般情况下,cpu使用过高是由于应用程序造成的;使用top命令后,看一看到占用cpu高的进程ID是 1972

  2、查看使用cpu使用率高的pid的线程 输入命令top –H –p 1972,如下如图所示:

  

  备注:记录消耗cpu过高的线程id 1983

  3、将线程 1983 转换为16进制 输入命令 printf "%x\n" 1983,如下图所示:

  

  4、使用jstack命令jstack 1972 | grep 7bf   其中1972为进程id,nid=0x7bf

  

  到此就定位到了进程中消耗cpu过高的线程,再去看这个线程中调用什么方法,这个方法就是cpu消耗过高的原因。

 

posted on 2017-07-27 16:54  小零-xiao0  阅读(306)  评论(0)    收藏  举报