![Figure 1: Architecture of J2SE 5.0 Monitoring and Management Support](https://i-blog.csdnimg.cn/blog_migrate/1fd864926809e626c692ad0f5f72746a.png)
1) .启动一个Demo程序作, command:
JDK_HOME/bin/java -Dcom.sun.management.jmxremote -jar JDK_HOME/demo/jfc/Java2D/Java2Demo.jar
2). 启动Jconsole, command:
JDK_HOME/bin/jconsole
启动成功之后可以在CONSOLE界面看到有本地进程和远程两个选项.
Locale: 直接选中一个要测试的进程,点出[连接]按钮.
Remote: 需要输入一个JMX的连接地址.
Standard URL: service:jmx:rmi:///jndi/rmi://hostName:portNum/jmxrmi
举例:
如果Tomcat运行在一个名为“webserve”的机器上,且JVM已经启动了JMX并监听端口9004,从JConsole(或者任何JMX客户端)连接它需要一个JMX URL“service:jmx:rmi:///jndi/rmi://webserver:9004/jmxrmi”。
选择已经启动的Demo程序,在Console界面上会看到7个TAB.
概述\内存\线程\类\VM 概要\MBean
跟踪统计
JConsole有许多对收集统计数据有用的选项卡,包括:
◆Memory:在JVM垃圾收集器中针对各个堆跟踪活动。
◆Threads:在目标JVM中检查当前线程活动。
◆Classes:观察VM已加载类的总数。
这些选项卡(和相关的图表)都是由每个Java 5及更高版本VM在JMX服务器上注册的JMX对象提供的,是内置到JVM的。一个给定JVM中可用bean的完整清单在MBeans选项卡上列出,包括一些元数据和一个有限的用户界面来查看数据或执行操作。(然而,注册通知是在JConsole用户界面之外。)
使用统计数据
假设一个Tomcat进程死于OutOfMemoryError。如果您想要弄清楚发生了什么,打开JConsole,单击Classes选项卡,过一段时间查看一次类计数。如果数量稳定上升,您可以假设应用程序服务器或者您的代码某个地方有一个ClassLoader漏洞,不久之后将耗尽PermGen空间。如果需要更进一步的确认问题,请看Memory选项卡。
创建一个堆转储为离线分析
生产环境中一切都在快速地进行着,您可能没有时间花费在您的应用程序分析器上,相反地,您可以为Java环境中的每个事件照一个快照保存下来过后再看。在JConsole中您也可以这样做,在VisualVM中甚至会做得更好。
先找到MBeans选项卡,在其中打开com.sun.management节点,接着是HotSpotDiagnostic节点。现在,选择Operations,注意右边面板中的“dumpHeap”按钮。如果您在第一个(“字符串”)输入框中向dumpHeap传递一个文件名来转储,它将为整个JVM堆照一个快照,并将其转储到那个文件。
稍后,您可以使用各种不同的商业分析器来分析文件,或者使用VisualVM分析快照。(记住,VisualVM是在Java 6中可用的,且是单独下载的。)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/92589/viewspace-674409/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/92589/viewspace-674409/