java进程分析

Posted jackchen007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java进程分析相关的知识,希望对你有一定的参考价值。

1. 找出 java进程pid,比如 11327

2. 使用jstack 看下 锁持有情况

/usr/java/latest/bin/jstack  -l 11327

3. 输出java堆栈信息,以及c/c++堆栈信息

/usr/java/latest/bin/jstack  -m 11327

4. 找出最耗cpu的线程

top -Hp 11327

找出 11341 耗时 最长

5. 将线程id转换为十六进制

printf "%x\n" 11341

结果为: 2c4d

6. 过滤出线程对应的堆栈信息

/usr/java/latest/bin/jstack 11327 |grep 2c4d

7. 使用jmap查看进程堆内存使用情况,包括gc算法,堆配置参数和各代中堆内存使用情况

 /usr/java/latest/bin/jmap  -heap   11327

8. 使用jmap查看堆内存中对象数目,大小统计直方图,如果带上live则只统计活对象,如下:

 /usr/java/latest/bin/jmap -histo:live   11327 | more

 

以上为分析过程中使用的命令及参数,

以上是关于java进程分析的主要内容,如果未能解决你的问题,请参考以下文章

Java虚拟机六:Java进程占用cpu过高问题分析

java进程分析

java分析工具系列2:jps(显示指定系统内所有的虚拟机进程)

有没有办法分析特定机器上所有 java 进程的 CPU 利用率?

jdk分析工具:jps和jstack

Linux下java进程CPU占用率高-分析方法