- 浏览: 1898768 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
July01:
最近了解到一款StratoIO打印控件,功能如下:1、Html ...
jquery打印指定的div -
GentlemanQc:
...
quartz系列(二)spring3.2.5与quartz2.1.7集群版集成简要说明 -
静夜独窗:
你好,能说一下server.xml增加的配置是怎么影响性能的吗 ...
tomcat7.0性能优化-挑战极限精简版 -
beyondfengyu:
beyondfengyu 写道如果每个客户进程的时间不同步,时 ...
java并发(二十二)分布式锁 -
beyondfengyu:
如果每个客户进程的时间不同步,时间超前的进程是不是更容易得到锁 ...
java并发(二十二)分布式锁
jps JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程
jps -l 输出主类全名,如果是JAR包,则输出JAR路径
jps -v 输出虚拟机进程启动时JVM参数
jstat JVM Statistics Monitoring Tool,用于收集HotSpot虚拟机各方面的运行数据
jstat -gcutil 进程号 [刷新毫秒数]
S0 S1 E O P YGC YGCT FGC FGCT GCT
0.00 0.00 3.23 8.14 49.97 6 1.089 3 2.630 3.719
S0和S1:新生代2个survivor区 使用百分比
E:是新生代的伊甸区 使用百分比
O:老年代 使用百分比
P:永久代 使用百分比
YGC:minor GC,发生在新生代的GC次数
YGCT:新生代GC总耗时
FGC:major GC,发生在老年代的GC次数
FGCT:老年代GC总耗时
GCT:总GC耗时
jinfo Configuration Info for Java,显示虚拟机配置信息
jinfo 进程号
jmap Memory Map for Java,生成虚拟机的内存转储快照(heapdump文件)
jmap -dump:format=b,file=/tmp/mydump.bin 进程号
输出
Dumping heap to /tmp/mydump.bin ...
Heap dump file created
jhat JVM Heap Dump Browser,用于分析headdump文件,他会建立一个HTTP/HTML服务器,让用户可以在浏览器上查看分析结果
jhat mydump.bin
输出的信息如下
Reading from mydump.bin...
Dump file created Fri Jan 10 15:51:28 CST 2014
Snapshot read, resolving...
Resolving 2810470 objects...
Chasing references, expect 562 dots..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Eliminating duplicate references..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Snapshot resolved.
Started HTTP server on port 7000
Server is ready.
重点要分析
Show heap histogram
jstack Stack Trace for Java,显示虚拟机的线程快照
jstack -l 进程号 除堆栈外,显示关于锁的附加信息
输出信息
2014-01-10 16:00:23
Full thread dump Java HotSpot(TM) 64-Bit Server VM (20.45-b01 mixed mode):
"Worker-16" prio=10 tid=0x00007f643815e800 nid=0x1cdb in Object.wait() [0x00007f63f2765000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0000000785fb3280> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:188)
- locked <0x0000000785fb3280> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:220)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:50)
Locked ownable synchronizers:
- None
"Worker-15" prio=10 tid=0x00007f643883f800 nid=0x1c70 in Object.wait() [0x00007f63f2967000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0000000785fb3280> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:188)
- locked <0x0000000785fb3280> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:220)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:50)
Locked ownable synchronizers:
- None
"Attach Listener" daemon prio=10 tid=0x00007f6414003000 nid=0x1c36 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
jps -l 输出主类全名,如果是JAR包,则输出JAR路径
jps -v 输出虚拟机进程启动时JVM参数
jstat JVM Statistics Monitoring Tool,用于收集HotSpot虚拟机各方面的运行数据
jstat -gcutil 进程号 [刷新毫秒数]
S0 S1 E O P YGC YGCT FGC FGCT GCT
0.00 0.00 3.23 8.14 49.97 6 1.089 3 2.630 3.719
S0和S1:新生代2个survivor区 使用百分比
E:是新生代的伊甸区 使用百分比
O:老年代 使用百分比
P:永久代 使用百分比
YGC:minor GC,发生在新生代的GC次数
YGCT:新生代GC总耗时
FGC:major GC,发生在老年代的GC次数
FGCT:老年代GC总耗时
GCT:总GC耗时
jinfo Configuration Info for Java,显示虚拟机配置信息
jinfo 进程号
jmap Memory Map for Java,生成虚拟机的内存转储快照(heapdump文件)
jmap -dump:format=b,file=/tmp/mydump.bin 进程号
输出
Dumping heap to /tmp/mydump.bin ...
Heap dump file created
jhat JVM Heap Dump Browser,用于分析headdump文件,他会建立一个HTTP/HTML服务器,让用户可以在浏览器上查看分析结果
jhat mydump.bin
输出的信息如下
Reading from mydump.bin...
Dump file created Fri Jan 10 15:51:28 CST 2014
Snapshot read, resolving...
Resolving 2810470 objects...
Chasing references, expect 562 dots..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Eliminating duplicate references..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Snapshot resolved.
Started HTTP server on port 7000
Server is ready.
重点要分析
Show heap histogram
jstack Stack Trace for Java,显示虚拟机的线程快照
jstack -l 进程号 除堆栈外,显示关于锁的附加信息
输出信息
2014-01-10 16:00:23
Full thread dump Java HotSpot(TM) 64-Bit Server VM (20.45-b01 mixed mode):
"Worker-16" prio=10 tid=0x00007f643815e800 nid=0x1cdb in Object.wait() [0x00007f63f2765000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0000000785fb3280> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:188)
- locked <0x0000000785fb3280> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:220)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:50)
Locked ownable synchronizers:
- None
"Worker-15" prio=10 tid=0x00007f643883f800 nid=0x1c70 in Object.wait() [0x00007f63f2967000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0000000785fb3280> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:188)
- locked <0x0000000785fb3280> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:220)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:50)
Locked ownable synchronizers:
- None
"Attach Listener" daemon prio=10 tid=0x00007f6414003000 nid=0x1c36 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
发表评论
-
java for 的几种用法
2014-12-02 09:59 1260J2SE 1.5提供了另一 ... -
finally不执行的陷阱
2014-05-16 09:23 1123写了个DEMO,说明下finally在System.exit( ... -
URI和URL的区别
2014-03-26 10:38 1298String HttpServletRequest.getRe ... -
Iterator与ListIterator区别
2014-03-23 22:21 1136Iterator:只能正向遍历集合,适用于获取移除元素。Lis ... -
快速失败特性
2014-03-23 22:20 1146从高级别层次来说快速失败是一个系统或软件对于其故障做出 ... -
java继承静态方法复写
2014-03-12 09:28 4421最近和人交流,遇到了这样一个问题,就是继承当中,静态方法复写的 ... -
关于return和finally
2014-03-11 10:19 2835本来return和finally也不是个事。之前看虚拟机运行原 ... -
JVM内存分析系列(十三)内存实践理解
2014-01-22 10:09 3120java堆 包括 新生代:eden,survival(from ... -
JVM内存分析系列(十二)G1垃圾收集器的使用
2014-01-16 17:10 11519Garbage First(G1)致力于在多CPU和大内存服务 ... -
JVM内存分析系列(十一)GC基本情况与CMS垃圾收集器调优
2014-01-16 11:44 11598初始标记 CMS-initial-mark 并发标记 CMS- ... -
eclipse内存优化
2014-02-26 14:00 1547修改eclipse的配置文件,添加或者修改参数如下,其中XX: ... -
远程调试(二)JVM
2014-01-10 11:43 1744从J2SE 1.4.2开始,就已经提出并实现了JavaTM P ... -
guava--google----用来替代commons的jar包
2014-01-06 18:21 16832Guava 是一个 Google ... -
JVM内存分析系列(八)垃圾收集器介绍及性能指标
2013-12-30 13:33 2037内存回收的具体实现。 停顿时间越短就越适合需要 ... -
JVM内存分析系列(七)垃圾收集算法
2013-12-30 12:58 1119内存回收的方法论 标记-清除算法 Mark-Sweep 分为 ... -
JVM内存分析系列(六)对象存活判断
2013-12-26 11:10 1137对象存活常用2种算法 引用计数算法 给对象中添加一个 ... -
JVM内存分析系列(五)浅谈finalize()方法
2013-12-28 18:47 1469根搜索算法中不可达对象在回收之前,要进行二次标记。 第 ... -
JVM内存分析系列(四)对象4种引用
2013-12-25 20:07 1322强引用:只要强引用还存在,垃圾收集器永远不会回收掉被引用的对象 ... -
JVM内存分析系列(三)JVM内存模型初步
2013-12-25 17:09 1163根据《Java虚拟机规范(第二版)》的规定,结构如下 1 ... -
JVM内存分析系列(二)内存溢出的类型分析
2013-12-24 23:54 1840启动参数 -server -verbose:gc -Xms10 ...
相关推荐
本篇文章将详细介绍Java开发工具包(JDK)中的一些重要监控和故障处理工具,这些工具可以帮助开发者识别和解决生产环境中的内存溢出问题,进而提升应用程序的性能和稳定性。 首先,我们来了解JDK提供的几个监控和...
8. 调优工具:如JVisualVM、JConsole等,帮助开发者监控和调整JVM的性能。 了解JVM源码可以帮助我们深入理解Java程序的运行过程,优化内存使用,提升程序性能,排查故障。例如,通过阅读垃圾回收器的源码,我们可以...
JVM 监控管理及故障诊断工具 ...jps、jstat 和 jstatd 三种命令都是 JVM 监控管理及故障诊断的重要工具,它们可以帮助开发者快速地了解 JVM 的性能和资源消耗情况,从而进行合理的资源分配和性能优化。
6. **JVM日志与故障排查**:通过-JDK自带的jmap、jhat、jstack和jinfo等命令,可以生成堆转储、分析内存、查看线程堆栈信息和配置信息,辅助故障诊断。 7. **类加载机制**:JVM的双亲委派模型确保了类加载的一致性...
jvisualvm是一款强大的、免费的Java应用程序性能分析工具,它允许开发者深入洞察JVM的行为,进行内存分析、线程监控、CPU性能剖析等。本文将详细探讨如何利用jvisualvm来进行有效的JVM监控。 一、jvisualvm简介 ...
JDK提供了一系列强大的诊断工具,如jconsole、jvisualvm、jmap、jhat等,它们可以帮助我们查看JVM状态、分析内存泄漏、生成堆转储文件等。熟练运用这些工具,可以迅速定位和解决问题。 六、性能监控与调优 性能监控...
1. JVisualVM:集成在JDK中的多合一工具,可以提供内存分析、线程监控、CPU剖析等功能,方便开发者实时查看JVM状态。 2. JConsole:同样内置于JDK,提供GUI界面来监控Java应用程序的性能和资源消耗。 3. JProfiler:...
例如,合理设置堆大小、新生代与老年代的比例,选择合适的GC策略,避免死锁和竞态条件,以及利用JDK工具(如JVisualVM、JProfiler等)进行性能监控和分析。 5. **故障诊断**:当遇到JVM异常或性能问题时,我们需要...
工具是运用知识处理数据的手段。这里说的数据包括:运行日志、异常堆栈、GC日志、线程快照文件(threaddump/javacore文件)、堆转储快照(heapdump/hprof文件)等。使用JVM命令和一查看这个JVM参数,帮助我们排查、...
标题中的“jdk6新强工具使用,触摸JAVA内存管理机制”指的是在Java Development Kit (JDK) 6版本中引入的一些强大的性能分析和诊断工具,这些工具帮助开发者深入理解Java应用程序的内存使用情况,从而优化程序性能。...
Java内存分析工具是Java开发过程中不可或缺的利器,主要用于检测和解决程序中的内存泄漏问题,以及进行性能监控。本文将深入探讨几种常用的Java内存分析工具,它们的特点、使用方法以及如何利用这些工具有效地优化...
4. **性能监控与调优工具**:JDK自带的一些工具,如jconsole、jvisualvm、jmap、jstack等,是JVM性能分析的重要辅助。书中可能详细讲解了这些工具的使用方法和分析技巧。 5. **JVM参数设置**:了解并合理设置JVM...
JProfiler则是一个强大的商业Java性能分析器,能够进行深度内存分析和CPU性能剖析。此外,JDK的`jmap`、`jhat`、`jstack`等命令行工具也是进行性能诊断的得力助手。 在源码层面,JDK通过各种技术手段实现性能优化。...
书中介绍了使用JDK自带的工具,如jconsole、jvisualvm、jmap、jhat等进行性能监控和问题排查的方法。读者将学习如何分析堆内存、GC日志,以及如何利用线程Dump来定位死锁和线程阻塞等问题。 书中还涉及了JVM的编译...
VisualGC是一款强大的内存监控工具,它作为JDK1.8中jvisualvm的插件,为Java开发者提供了直观且详细的内存使用情况分析。通过安装并使用VisualGC,我们可以更好地理解和优化Java应用程序的内存管理,从而提升程序...
JVM性能监控和分析工具是Java开发者在进行性能调优和故障排查时不可或缺的帮手。JVM(Java虚拟机)提供了多种内置的工具以及支持第三方工具,以监控和分析Java应用程序的运行状态和性能指标。这些工具能够帮助开发者...
**JDK内置实用工具:监视和故障排除** Java Development Kit (JDK) 提供了一系列内置的工具,用于监视和诊断在Java平台上运行的应用程序。其中一个关键的工具是JConsole,这是一个基于Java Management Extensions ...
9. **jdk.jcmd**:JDK命令行工具,提供了许多用于诊断、管理和操作JVM的命令,如JVM信息查询、堆内存分析、垃圾收集等。 10. **jdk.dynalink**:动态链接库,提供了一种方式来在运行时动态绑定方法调用,通常用于...
JDK 11 Java SE 监控和管理指南 ...JDK 11 Java SE 监控和管理指南为 Java 开发者和系统管理员提供了综合的监控和管理解决方案,涵盖了 Java 平台的架构、监控工具、性能优化、故障排除和安全管理等方面的内容。