专业的JAVA编程教程与资源

网站首页 > java教程 正文

Linux排查java进程占用CPU过高原因方法

temp10 2024-10-01 22:17:19 java教程 9 ℃ 0 评论

在编写代码时,我们不可能想得面面俱到,有些问题可能只有程序在服务器上长时间运行后才能发现,如java进程占用CPU过高的情况,可能是部分代码偶发导致的,这个时候就需要我们进行排查,具体步骤如下:

1、使用top命令可以查询cpu占用高的进程;

Linux排查java进程占用CPU过高原因方法

2、进入top后按“C”键可以查看进程的启动命令,知晓具体服务,如启动命令展示不全,可按“右键”向右滚动查看;

3、查看需要排查进程的PID,使用如下命令查询该进程占用高的线程

  • 方法1
ps -mp 【替换为进程ID PID】 -o THREAD,tid,time
  • 方法2
top -Hp 【替换为进程ID PID】

4、找到cpu占用高的,且时常长的TID,使用如下命令转换为十六进制

printf “%x” 【线程ID TID】

5、使用如下命令查询该进程下占用CPU高的线程的栈信息

jstack 【进程ID PID】 | grep 【线程ID十六进制】 -A 10 -B 10

6、找到耗时多的代码的位置。然后分析代码bug!!!

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表