JVM常用调试工具介绍

JVM常用调试工具介绍,第1张

一、Linux ps (英文全拼:process status)命令用于显示当前进程的状态

ps aux 基本输出

ps aux 列名解释

注:优化机器资源主要从占用机器cpu和mem高的程序入手

二、Linux top命令查看正在运行的进程和系统负载信息,包括cpu负载、内存使用、各个进程所占系统资源等

基本输出

字段解释

三、Linux top -H -p pid。查看某个进程内部线程占用情况

四、jps(Java Virtual Machine Process Status Tool) 是java提供的一个显示当前所有java进程pid的命令

五、jinfo LVMID。可以用来查看 Java 进程运行的 JVM 参数

六、jstat(Java Virtual Machine statistics monitoring tool)主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对JVM的工具,非常适用

七、jstack(Java Stack Trace Tool)主要用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。 线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源

八、jmap命令(Java Memory Map)是其中之一。主要用于打印指定Java进程(或核心文件、远程调试服务器)的共享对象内存映射或堆内存细节

九、MAT(Memory Analysis Tools)是一个分析 Java堆数据的专业工具,用它可以定位内存泄漏的原因

此次分享准备过程中,发现JDK调试工具在Root用户下访问Yarn用户启动的Java虚拟机,获取不到信息,jstatck获取到的还不全(没有线程描述信息行)

可以使用 sudo -u yarn /usr/java/jdk180_181-cloudera/bin/jstack 这种方式获取。

查看CPU占用最高的Java进程

top

查看进程中线程使用情况

top -H -p 进程id

将线程id转为16进制

printf “%x\n” 线程id

生成线程快照日志

jstack 进程id >idlog

快照分析:用上面生成的16进制的线程id,在快照日志中查找

英文的中文解释——java进程快照,他可以显示当前运行在java虚拟机上的所有java进程信息,比如进程号、程序入口类、系统参数等一些简单信息。

比较常用的参数:

-q 只显示pid,不显示class名称,jar文件名和传递给main 方法的参数

$> jps -q

28680

23789

23651

-m 输出传递给main 方法的参数,在嵌入式jvm上可能是null

$> jps -m

28715 Jps -m

23789 BossMain

23651 Resin -socketwait 32768 -stdout /data/aoxj/resin/log/stdoutlog -stderr /data/aoxj/resin/log/stderrlog

-l 输出应用程序main class的完整package名 或者 应用程序的jar文件完整路径名

$> jps -l

28729 suntoolsjpsJps

23789 comasiainfoaimcbossbiBossMain

23651 comcauchoserverresinResin

-v 输出传递给JVM的参数

$> jps -v

23789 BossMain

28802 Jps -Denvclasspath=/data/aoxj/bossbi/twsecurity/java/trustwork140jar:/data/aoxj/bossbi/twsecurity/java/:/data/aoxj/bossbi/twsecurity/java/twcmccjar:/data/aoxj/jdk15/lib/rtjar:/data/aoxj/jd

k15/lib/toolsjar -Dapplicationhome=/data/aoxj/jdk15 -Xms8m

23651 Resin -Xss1m -Dresinhome=/data/aoxj/resin -Dserverroot=/data/aoxj/resin -Djavautilloggingmanager=comcauchologLogManagerImpl -

Djavaxmanagementbuilderinitial=comcauchojmxMBeanServerBuilderImpl

详细情况请参考sun官方文档。

>

以上就是关于JVM常用调试工具介绍全部的内容,包括:JVM常用调试工具介绍、java快照怎么看线程时长、什么是java process snapshot等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/10181502.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存