JAVA进程高CPU排查

参考文档:

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

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,447评论 18 399
  • 声明:原创文章,转载请注明出处。http://www.jianshu.com/u/e02df63eaa87 1、L...
    唐影若凡阅读 9,282评论 0 11
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,966评论 25 709
  • 我不想背书,不想考试,不想一直都这么蠢,还有不想是个处女座的女生,最后,如果可以,我能换护士这份工作吗?
    失控的大饼脸阅读 1,481评论 0 0
  • 标签 格式语法 <标签名 属性名="属性值">标签里的内容</标签名> 案例 一、块级标签 什么是块级标:显示为"...
    joy_蓝蜘蛛阅读 3,342评论 0 1

友情链接更多精彩内容