Java CPU使用率高排除方法

2023-12-15 03:28:05

查询CPU使用率高的进程

ps aux --sort=-pcpu | head -10

在这里插入图片描述
通过ps指令看到pid=1799程序CPU使用率47.1%,再看看程序的线程使用情况。

查询线程CPU使用率

ps命令方式

排序列出“29116”cpu使用率高的前10名线程

ps -mp 29116 -o THREAD,tid,time |sort -k2,2nr |head -10
ps -mp 29116 -o THREAD,tid,time | sort -rn
top 命令方式
top -p PID

top -p PID:观察该PID对应进程的占用情况。“shift + h” 开启线程显示,观察CPU占用较高的线程
在这里插入图片描述

查询线程堆栈

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

printf “%x\n” tid

在这里插入图片描述

打印线程的堆栈信息:

jstack pid |grep tid -A 30

在这里插入图片描述

jstat 查询gc情况

jstat命令命令格式:
jstat [Options] vmid [interval] [count]

参数说明:
Options,选项,我们一般使用 -gcutil 查看gc情况
vmid,VM的进程号,即当前运行的java进程号
interval,间隔时间,单位为毫秒
count,打印次数,如果缺省则打印无数次

jstat -gcutil 3001 5000 10

每5秒打印一次GC情况,打印10次。
在这里插入图片描述

文章来源:https://blog.csdn.net/NF_ALONG/article/details/134070935
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。