美文网首页
JStack和Top分析Java进程CPU占用率

JStack和Top分析Java进程CPU占用率

作者: 茂凯 | 来源:发表于2023-12-17 18:08 被阅读0次

在知道哪个Java进程CPU占用率过高以后:

1.使用命令 jstack PID 命令打印出CPU占用过高进程的线程栈,例如:

jstack 2797 > 2797.txt (注意:jstack是用16进程数来表示线程号)

2.使用top -H -p PID 命令查看对应进程是哪个线程占用CPU过高. 比如:
top -H -p 2797
注意:线程id为2919(10进制)  转换成十六进制 B67(十六进制)

3. 查找线程
2797.txt 查找 B67(十六进制)

图中绿色文字即为线程id值
nid : 对应的Linux操作系统下的tid线程号,也就是前面转化的16进制数字
tid: 这个应该是jvm的jmm内存规范中的唯一地址定位
源码:

4. 其它
或者也可以采用ps命令
ps -mp pid -o THREAD,tid,time 或者 ps -Lfp pid 来查看繁忙的线程信息
ps -mp 2797 -o THREAD,tid,time
tid:2919(十进制)

相关文章

  • jvm jstack分析线程状态及类加载机制

    jstack分析线程状态 如何查看cpu中占用率较高的线程并分析原因 在linux终端,执行top,它默认是按照使...

  • jstack

    top查看占用cpu较高的进程 1、查看jstack信息 jstack pid jstack 166176 2、查...

  • JAVA程序高CPU占用排查三板斧

    1. 用top命令找到CPU占用率高的java进程pid,或者ps -aux|grep java查看所有java进...

  • 机器CPU高问题排查

    top找到占用CPU资源的进程top.png 要查看java程序在做什么事情,用jstack命令dump出java...

  • 使用arthas定位耗时CPU的线程

    在分析CPU占用率很高的线程以及问题定位时,一般都是使用top和jstack命令,但是整个过程比较慢,确实使用ar...

  • top命令学习

    top命令 功能 显示当前系统正在执行的进程相关信息,包括扩进程ID、内存占用率、CPU占用率等 命令参数 top...

  • 2020-04-01 linux上快速打印出最占cpu的java

    top -d 1找出最占资源的java进程的pid和cpu,内存大概的占用率 编写 jvmtop.sh 文件保存到...

  • 查看java线程占用cpu情况

    使用jps找出java进程的pid top -Hp VMID jstack -l VMID 分析线程栈运行情况

  • 线上问题

    cpu100% 利用top工具找到最耗CPU的进程 查看该进程中最耗CPU的线程 通过jstack查找该线程 内存...

  • 一次CPU超高分析

    近期上线发号器,发现该进程的cpu占用率很高,接近100% 。 top结果如下: 查询具体的线程cpu占用率。如下...

网友评论

      本文标题:JStack和Top分析Java进程CPU占用率

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