JAVA进程占用CPU分析

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

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

JAVA进程占用CPU分析

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

JAVA进程占用CPU分析

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

JAVA进程占用CPU分析

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

JAVA进程占用CPU分析

上一篇:特征提取k_word


下一篇:自己封装的一个LoadRes组件