龙空技术网

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

小码农的闲暇时光 195

前言:

目前我们对“java进程cpu”大体比较注意,姐妹们都想要分析一些“java进程cpu”的相关内容。那么小编在网上汇集了一些有关“java进程cpu””的相关内容,希望大家能喜欢,小伙伴们一起来学习一下吧!

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

1、使用top命令可以查询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!!!

标签: #java进程cpu