- 浏览: 1789561 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
奔跑的小牛:
例子都打不开
如何使用JVisualVM进行性能分析 -
蜗牛coder:
好东西[color=blue][/color]
Lucene学习:全文检索的基本原理 -
lovesunweina:
不在haoop中是在linux系统中,映射IP的时候,不能使用 ...
java.io.IOException: Incomplete HDFS URI, no host -
evening_xxxy:
挺好的, 谢谢分享
如何利用 JConsole观察分析Java程序的运行,进行排错调优 -
di1984HIT:
学习了~~~
ant使用ssh和linux交互 如:上传文件
一、JConsole是什么
从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码。
二、如何启动JConsole
- 如果是从命令行启动,使 JDK 在 PATH 上,运行 jconsole 即可。
- 如果从 GUI shell 启动,找到 JDK 安装路径,打开 bin 文件夹,双击 jconsole 。
当分析工具弹出时(取决于正在运行的 Java 版本以及正在运行的 Java 程序数量),可能会出现一个对话框,要求输入一个进程的 URL 来连接,也可能列出许多不同的本地 Java 进程(有时包含 JConsole 进程本身)来连接。如图所示:
想分析那个程序就双击那个进程。
三、如何设置JAVA程序运行时可以被JConsolse连接分析
- 本地程序(相对于开启JConsole的计算机),无需设置任何参数就可以被本地开启的JConsole连接(Java SE 6开始无需设置,之前还是需要设置运行时参数 -Dcom.sun.management.jmxremote )
- 无认证连接 (下面的设置表示:连接的端口为8999、无需认证就可以被连接)
-Dcom.sun.management.jmxremote.port=8999 \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false
- 如果考虑到安全因素,需要认证,需要安全连接,也是可以搞定的。参考:http://download.oracle.com/javase/6/docs/technotes/guides/management/agent.html#gdenv
四、JConsole如何连接远程机器的JAVA程序(举例说明)
1、写一个简单的一直运行的JAVA程序,运行在某台机器上如(192.168.0.181)
java -cp . -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.managent.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false JConsoleTest
2、另外一台机器进行连接
可以直接使用命令:
jconsole.exe 192.168.0.181:8999
也可以在已经打开的JConsole界面操作 连接->新建连接->选择远程进程->输入远程主机IP和端口号->点击“连接”,如图:
然后就会进入分析界面:
性能分析
下面说说如何分析,如何使用这六个标签
- 概述: Displays overview information about the Java VM and monitored values.
- 内存: 显示内存使用信息
- 线程: 显示线程使用信息
- 类: 显示类装载信息
- *VM摘要:*显示java VM信息
- MBeans: 显示 MBeans.
概述
概述很简单没啥说的,自己看看吧,不过值得一提的是对着图点击右键可以保存数据到CSV文件,以后可以使用其他工具来分析这些数据。
内存
这个比较有价值,参看堆内存,非堆内存,内存池的状况总体内存的分配和使用情况以及不同的GC进行垃圾回收的次数和时间。可以手动进行GC查看内存变化。
在分析JAVA内存问题进行调优时候非常有用,你要学习JVM内存模型,之后会发现这里的每个值都具有意义。
GC的算法和参数对性能有显著的影响,注意垃圾回收次数、时间、以及partial GC和full GC,调整你所使用的不同GC和以及各个GC下的参数,然后在这个视图下观察,以得到好的性能。
这里贴一下 Java HotSpot VM garbage collector 下generational GC 的各代的划分图:
关于GC,可以参考:http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html
线程
左下角显示所有的活动线程(如果线程过多,可以在下面的过滤栏中输入字符串过滤出你想要观察的线程)。点击某个显示会显示这个线程的名称、状态、阻塞和等待的次数、堆栈的信息。
统计图显示的是线程数目的峰值(红色)和当前活动的线程(蓝色)。
另外下面有个按钮“检测到死锁”,有时候会有用处。
类
没啥要说的。
VM摘要
也没啥要说的,看看吧,内存状况,操作系统...
MBean
这里可以有一些额外的操作。
插件
jconsole -pluginpath C:\Java\jdk1.6.0_22\demo\management\JTop\JTop.jar
一看便知,是个什么东西。
推荐使用升级版 JConsole 即 jvisualvm 。
关于jvisualvm的使用,->http://jiajun.iteye.com/blog/1180230
-----------------------------------------------------------------------------------------------------------------------
参考资料:
- Monitoring and Management Using JConsole :http://download.oracle.com/javase/6/docs/technotes/guides/management/jconsole.html
- http://download.oracle.com/javase/6/docs/technotes/guides/management/agent.html Monitoring and Management Using JMX Technology :http://download.oracle.com/javase/6/docs/technotes/guides/management/agent.html
- Eclipse launcher for VisualVM : http://visualvm.dev.java.net/eclipse-launcher.html
- Tuning Garbage Collection with the 5.0 Java[tm] Virtual Machine : http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html
评论
不好意思 简单的介绍一下,见笑了。
,呵呵,能分享本身就挺好.能结合有问题的实例,帮助性更大
不好意思 简单的介绍一下,见笑了。
发表评论
-
如何使用JVisualVM进行性能分析
2011-09-25 22:32 84979地址:https://visualvm.dev.java.ne ... -
JDK5中的concurrent包、线程池
2011-02-19 23:43 5084concurrent并发包里面几个 ... -
gentoo下 JAVA生成图片的问题 以及JFreeChart的图片问题
2010-11-05 17:21 6886=============================== ... -
JAVA NIO 详解Buffer类
2010-10-19 11:21 16580讲得很好,转载一下:http://www.java1995 ... -
简单的记录下 jconsole 查看远程机器的JAVA程序运行状况
2010-09-07 14:31 1792简单实用 远端: java \ ... -
项目管理 进度表
2010-06-27 14:43 4010项目管理中很重要的一部分 进度管理,进度管理又牵扯到进度表 ... -
JAVA基础 对象克隆 实现java.lang.Cloneable接口
2010-04-23 13:46 6091先来看看JDK的解释: ... -
深入浅出Java 类加载器
2010-03-05 11:42 4515简介: 类加载 ... -
Jave EE 6特性:依赖注入、Bean验证和EJB增强
2009-12-18 16:19 2096Java EE 的最新版本提供 ... -
JVM优化之调整大内存分页(LargePage)
2009-11-26 12:50 4234http://kenwu.me/tune-large-page ... -
java内存模型详解
2009-11-26 12:30 2481好读书求甚解,共享展 ... -
JVM调优总结(一)一些概念
2009-11-24 14:43 1491原文地址:http://pengjiahe ... -
CentOS 5.2下配置Java和TOMCAT环境
2009-10-17 14:29 3774安装JDK: 1、下载解压(tar zxvf jdk.. ... -
web项目定时执行任务
2009-08-27 18:19 4331xml文件内容-监听器 < ... -
JAVA多线程的控制JAVA 5.0
2009-08-20 13:38 20012在Java 5.0之前启动一个任务是通过调用Thre ... -
JDK自带VM分析工具jps,jstat,jmap,jconsole
2009-08-09 10:24 35266一、概述 SUN ... -
log4j入门与提高-实例讲解
2009-08-04 09:47 6904官方网站:http://logging.apache.org/ ... -
获取Servlet运行环境信息-Servlet自身信息、Servlet服务器端信息和Servlet客户端信息
2009-07-08 15:01 7220在Servlet中可以很方便的获取各种运行环境信息,这些信 ... -
使用Perf4J进行性能分析和监控
2009-06-19 10:28 3566作者 Alex Devine 译者 崔 ... -
JAVA版PCX图象的RLE算法压缩与解压缩
2009-05-26 17:09 6016丰富JE的博客,把上大学时候的一个算法,搬过来,大概是2007 ...
相关推荐
通过这些视图,可以深入分析Java应用程序的运行状态,例如在内存视图中观察堆内存使用情况,触发GC操作并观察内存变化;在线程视图中查找死锁;在MBeans视图中配置和操作特定的服务。这些功能使得JConsole成为Java...
下面是如何利用 JConsole 观察分析 Java 程序的运行。 一、JConsole 概述 JConsole 是一个内置 Java 性能分析器,可以监控 Java 应用程序性能和跟踪 Java 中的代码。它可以从命令行或在 GUI shell 中运行。 二、...
### JConsole:观察与分析Java程序的运行 #### 一、JConsole简介 JConsole是自Java 5开始集成在JDK中的一个强大的性能监视和故障排除工具。它能够帮助开发者和运维人员监控Java应用程序的运行状态,并进行性能分析...
2. **识别瓶颈**:利用性能分析工具(如JProfiler、VisualVM等)找出程序中最耗时的部分。 3. **选择优化策略**:根据瓶颈的具体情况选择合适的优化策略,比如改进算法、减少内存分配、使用更高效的集合类等。 4...
Jconsole是JDK自带的监控工具,可以对Java应用程序进行监控。本文将介绍通过Jconsole工具对Java应用程序进行监控,包括环境准备、操作步骤和监控内容等。 环境准备 要使用Jconsole对Java应用程序进行监控,需要在...
《深入理解Java虚拟机》是一本深度探讨...通过学习JVM性能调优,我们可以优化应用程序的资源利用,提高运行效率;理解内存模型有助于编写线程安全的代码;而掌握虚拟机原理则让我们能够更好地驾驭这个复杂的运行环境。
JDK1.5提供了JMX remote的管理工具Jconsole,可以监控Java运行程序的内存使用情况、活动线程数量、类装载的数量、MBeans的状态、虚拟机的各种信息等,还可以执行MBean公开的方法或强制进行垃圾回收。下面我们将详细...
JConsole、VisualVM和JMC(Java Mission Control)等工具能帮助我们查看GC日志,分析停顿时间和吞吐量,以便调整垃圾回收器参数,如新生代和老年代的比例、Survivor区大小等。 此外,永久代(Perm Gen)或方法区...
在Java开发中,性能调优是一项关键任务,它涉及到程序运行效率、资源利用和系统稳定性。本指南主要关注Java虚拟机(JVM)调优、编码最佳实践以及微基准测试的重要性。 **基本规则** 1. **不要轻信,要测试**:...
5. 调优工具:如JVisualVM、JConsole、JMX等可以帮助监控和分析JVM的运行状态,提供调优依据。 6. 并发和线程:-XX:ParallelGCThreads设定并行GC的线程数,-XX:PretenureSizeThreshold设定直接晋升到老年代的对象...
Java内存参数调优是优化Java应用程序性能的关键环节,特别是对于大型和高负载的应用,...不过,内存调优是一个细致且需要实践经验的过程,实际应用中可能需要结合监控工具(如VisualVM、JConsole等)进行观察和调整。
4. YourKit Java Profiler:商业的高性能Java分析器,提供内存泄漏检测、CPU和线程剖析等功能。 5. GCViewer:用于分析GC日志,帮助理解垃圾收集器的行为。 二、JVM参数调优 1. -Xms 和 -Xmx:设置JVM堆内存的初始...
Java虚拟机(JVM)是Java程序运行的核心,它负责解释和执行字节码,管理内存,以及优化程序性能。本篇文章将深入探讨基于Java虚拟机内存模型的性能调优方法,帮助开发者优化应用程序,提高系统效率。 1. **Java内存...
在Java开发领域,性能分析是优化应用程序的关键环节。JVisualVM和jconsole是两款由Oracle提供的强大工具,用于监控和...记住,性能优化是一个持续的过程,定期进行性能分析和调优是保证应用程序高效运行的重要步骤。
Java虚拟机(JVM)是Java程序运行的核心,它负责解释和执行字节码,为开发者提供了跨平台的运行环境。马士兵老师的“Java虚拟机调优”课程旨在帮助学员深入理解JVM的工作原理,通过实例程序提升Java应用程序的性能。...
jconsole.jar是Java SDK自带的一款图形化监控工具,它基于JMX(Java Management Extensions)技术,能够对本地或远程的Java应用程序进行全方位的监控。通过这个工具,用户可以直观地查看到CPU使用率、内存分配、线程...
Java JVM(Java虚拟机)内存分配与调优是Java开发者必须掌握的重要技能,它涉及到程序的性能优化和稳定性。在Java应用中,JVM扮演着至关重要的角色,它负责解析字节码、管理内存以及执行线程等。本文将深入探讨JVM...
6. **性能监控和分析工具**:JDK自带的JConsole、VisualVM和JFR等工具可以帮助开发者实时监控JVM状态,定位性能瓶颈,进行调优。同时,`jmap`、`jstat`和`jhat`等命令行工具也是分析内存和性能的重要手段。 7. **...
Java虚拟机(JVM)调优是优化Java应用程序性能的关键环节。为了有效地进行JVM调优,开发人员和运维人员通常会使用各种工具。本文将详细介绍两款常用的JVM调优工具——JConsole和VisualVM。 首先,JConsole是Java 5...