1 JDK8 使用 jcmd 代替以前版本中的jstack
, jinfo
, and jmap
工具使用
2JMC 诊断,JMC是由JMX,JFR和其它几个可下载功能插件共同组成,其中:
a.JMX起到监控和管理作用。能够连接运行中的jvm,能实时的收集和显示一些关键的属性
b. JFR性能分析
c. 在jdk8环境下,可以触发用户自定义的行为和规则
d.JMC的其它插件 如: - WLS, DTrace[类似JFR], JOverflow[分析 heap情况]
程序增加参数 -XX:+UnlockCommercialFeatures -XX:+FlightRecorder
3 JFR 有2种录制方案
I 使用 Continuous Recordings,对应用程序不会有太多的性能影响。但是没有heap statistics or allocation profiling相关信息,对调试罕见的错误非常有用。
II 使用Profiling Recordings,会获取到很多有用的信息,对应用程序会产生较大的影响,甚至达到2%的影响,主要用在以下3个方面
a 分析 大对象创建和方法调用情况
b 查找 使用越来越多内存的class,可能导致内存泄漏。即不能正确回收内存的class
c 查找 类似 synchronized 导致的 性能瓶颈
4 有三种方法启动JFR
I Start a profiling recording
java -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:StartFlightRecording=delay=20s,duration=60s,name=myrecording,filename=C:\TEMP\myrecording.jfr,settings=profile MyApp
II Start a continuous recording
java -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=default recording=true,disk=true,repository=/tmp,maxage=6h,settings=default MyApp
III 使用 JCMD Utility 启动
jcmd pid help
jcmd pid JFR.start name=MyRecording settings=profile delay=20s duration=2m filename=C:\TEMP\myrecording.jfr
5 Native Memory Tracking
I 应用设置 -XX:NativeMemoryTracking=summary or -XX:NativeMemoryTracking=detail
II jcmd <pid> VM.native_memory summary or
jcmd <pid> VM.native_memory detail
.
III jcmd <pid> VM.native_memory baseline
jcmd <pid> VM.native_memory summary.diff or jcmd <pid> VM.native_memory detail.diff
6 java -agentlib:hprof=help
I 单个类的性能分析
java -agentlib:hprof=heap=sites ToBeProfiledClass
javac -J-agentlib:hprof=heap=sites ToBeProfiledJAVA[部分性能]
II 配置成整体项目运行
-agentlib:hprof=heap=dump,cpu=samples,format=b
如导出以下文件:java.hprof
7 Jhat 工具使用
启动 jhat java.hprof
8 jstat 工具
jstat -help / jstat -options
如:jstat -gcutil pid 1s 10
9 jconsole 远程配置
-Djava.rmi.server.hostname=192.168.2.3
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
10 Detect Deadlocks
增加参数 -XX:+PrintConcurrentLocks
heap summary:-XX:+PrintClassHistogram 打出详情
相关推荐
JMC_Update_V1.6.rar
jmc8.0 jdk1.8
JMC_Update_V1.6.rar
jmc-8.0.1_osx-x64.tar.gz
使用JMC可以监视和管理 Java 应用程序,不会导致相关工具类的大幅度性能开销,它使用为 Java 虚拟机 (JVM) 的普通自适应动态优化收集的数据。
生产时间分析和诊断工具。 目前可以在受支持平台上的 Oracle JDK 和 Eclipse 市场中找到 Mission Control 的构建版本。 有关任务控制的更多信息,请参阅。 下载构建 JDK Mission Control 的二进制发行版由不同的下游...
jmc-8.3.1_linux-x64.tar.gz
jmc是一款java自带的监控工具,支持CPU,内存,IO,堆栈信息等抓取和监控
jmc-8.2.1_linux-x64.tar.gz
jmc-8.2.1_osx-aarch64.tar.gz
JDK Mission Control ,监控jvm状态
jmc-8.3.0_windows-x64.zip
jmc-flame-view 社区协作以提供一个视图,该视图将堆栈跟踪选择呈现为Mission Control中的火焰图。 请注意,此代码现在已添加到JMC项目中。 要获取最新版本,请访问查看JDK任务控制存储库。 该插件应提供一个很好...
JMC(Java mission control)是JDK自带的一个图形界面监控工具,监控信息非常全面,这里提供 MacOS 版下载
jmc-8.3.0_linux-x64.tar.gz
生产时间分析和诊断工具。 目前可以在受支持平台上的 Oracle JDK 和 Eclipse 市场中找到 Mission Control 的构建版本。 有关任务控制的更多信息,请参阅。 核心 API 功能 用于解析和处理 Java 飞行记录的核心 API ...
JMicron_JMC2xx_WinDrv_R0.0.31.6_WHQL.zip
JMC_EE Lab VV Setup Proposal
Mission Control是Java的开源生产时间剖析和诊断工具。 当前,可以在受支持平台上的Oracle JDK和Eclipse市场中找到Mission Control的内部版本。 有关任务控制的更多信息,请参见 。 核心API功能 用于解析和处理...