JAVA进程占用CPU分析

 

  在一次生产环境中,服务器负载报警,SSH登录上看到CPU占用很高。

  1.执行top命令,看到进程号为9737的进程持续占用CPU

 

  2.怀疑是否是进程配置的内存不够了,引发了fullGC导致CPU占用高,执行jmap -heap 9737,看到老年代使用率百分之零,不可能引发fullGC

  3.所以应该是程序中的某个线程占用CPU高导致的,使用jstack 9737 > ps.txt导出进程的线程信息,执行top  shift+h找到占用cpu最高的线程,果然就是9737进程下的线程!

  4.将线程号9836转换成16进制266C后在ps.txt文件中查找,找到具体代码,分析解决。

 

posted @ 2017-04-10 15:04  得瑟的土匪  阅读(280)  评论(1编辑  收藏  举报