美文网首页
JAVA进程高CPU排查

JAVA进程高CPU排查

作者: wfwf1990 | 来源:发表于2018-01-02 18:42 被阅读0次

    参考文档:

    http://blog.chinaunix.net/uid-10449864-id-3463151.html

    注意:此方式适合代码问题影响的cpu过高问题

    解决过程

    1)根据top命令,发现PID为2633的Java进程占用CPU高达300%,出现故障。

    2)找到该进程后,如何定位具体线程或代码呢,首先显示线程列表,并按照CPU占用高的线程排序:

    [root@localhost logs]# ps -mp 2633 -o THREAD,tid,time | sort -rn

    显示结果如下:

    USER     %CPU PRI SCNT WCHAN  USER SYSTEM   TID     TIME

    root     10.5  19    - -         -      -  3626 00:12:48

    root     10.1  19    - -         -      -  3593 00:12:16

    找到了耗时最高的线程3626,占用CPU时间有12分钟了!

    3)将需要的线程ID转换为16进制格式:

    [root@localhost logs]# printf "%x\n" 3626

    e18

    4)最后打印线程的堆栈信息:

    [root@localhost logs]# jstack 2633 |grep e18 -A 30

    将输出的信息发给开发部进行确认,这样就能找出有问题的代码。

    相关文章

      网友评论

          本文标题:JAVA进程高CPU排查

          本文链接:https://www.haomeiwen.com/subject/xlrqnxtx.html