Jconsole

Jconsole,Java Monitoring and Management Console。java监控和管理控制台,从java5开始,在JDK中提供。
用于对JVM中内存,线程和类等的监控。

 

基本配置

  本文使用java6,SUN JDK1.6.0_03,使用JDK1.5版本使用略有不同。

  本文使用windows XP。

  确认jdk的bin目录设置到环境变量Path中。

  在命令行中输入:

  jconsole

  如果弹出窗口,说明配置可用。

  基本使用

  这里使用的是本地JVM监控,如果要监控远程的JVM需要另外的配置。

  首先,启动需要监控的Java应用程序。

  通过任务管理器的进程标签,查看该进程的PID,比如是1388

  在命令行启动jconsole:

  jconsole 1388

  在启动的界面中:

  概述:有关堆内存使用情况,线程,类加载和CPU使用情况的综述;

  内存:内存的详细情况,堆和其他内存;

  线程:峰值/活动线程,另外,各个线程的明细信息,检测死锁;

  类:监控加载和卸载的类;

  vm摘要:有关vm的明细信息

  MBean:当前Java程序的MBean(如果有的话)的操作。
**********************************************************************

JDK中Jconsole的使用

JDK中Jconsole的使用
2008-04-03 14:16
JAVA应用程序打成jar包的部署方式:

一、Local方式
1、cmd进入dos下,进入到应用程序所在目录,执行语句如下:
java -Dcom.sun.management.jmxremote -jar 程序名.jar
(java -Dcom.sun.management.jmxremote -jar Java2Demo.jar)(测试例子Java2Demo.jar在C:\Program Files\Java\jdk1.6.0_02\demo\jfc\Java2D\)

还出不来的话 直接 在dos里 jconsole 进程号

2、启动jdk_home\bin目录下的Jconsole.exe就可以看到有一个

本地的连接在里面。点击连接就可以进入相应的监视界面了。

二、JMX方式(远程连接):
1、cmd进入dos下,进入到应用程序所在目录,执行语句如下:
java -Dcom.sun.management.jmxremote.port=8903 -

Dcom.sun.management.jmxremote.ssl=false -

Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=192.168.***.***

2、启动jdk_home\bin目录下的Jconsole.exe点高级。在JMX

URL:中输入语句如下:

service:jmx:rmi:///jndi/rmi://192.168.***.***:8903/jmxr

mi
点连接就可以进行远程监控了



web应用程序在tomcat中部署JMX(示例:tomcat-6.0.14)
1、启动tomcat\bin目录下的tomcat6w.exe,在JAVA_OPTS里设

置如下:
-Dcom.sun.management.jmxremote.port=8903
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=192.168.***.***

注意:不能有空格,不然tomcat不能启动。

2、tomcat启动成功后,就可以在另一台机器上启动

jdk_home\bin目录下的Jconsole.exe点高级。在JMX URL:中输

入语句如下:

service:jmx:rmi:///jndi/rmi://192.168.***.***:8903/jmxr

mi
点连接就可以进行远程监控了

以上是JMX基本部署,没有涉及到验证方面,如果使用的话,可

能会有漏洞,因为SSL和authenticate设置为false的话,那么

8903端口就有可能有暴露的危险。

如果想进行密码验证话,可以在网上找资料,自己进行调试。


我自己的应用:
1.修改Linux下tomcat的bin目录下的catalina.sh文件
添加
JAVA_OPTS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.port=7080
-Dcom.sun.management.jmxremote
2.修改/etc/hosts文件下的localhost对应的IP(127.0.0.1)地址,改为linux自身的IP如10.0.0.157.
3.打开jconsole远程输入 10.0.0.157:7080



Eden Space (heap): 内存最初从这个线程池分配给大部分对象。
Survivor Space (heap):用于保存在eden space内存池中经过垃圾回收后没有被回收的对象。
Tenured Generation (heap):用于保持已经在 survivor space内存池中存在了一段时间的对象。
Permanent Generation (non-heap): 保存虚拟机自己的静态(refective)数据,例如类(class)和方法(method)对象。Java虚拟机共享这些类数据。这个区域被分割为只读的和只写的,
Code Cache (non-heap):HotSpot Java虚拟机包括一个用于编译和保存本地代码(native code)的内存,叫做“代码缓存区”(code cache)

================================================

你可能感兴趣的:(JDK,6.0学习笔记)