没有合适的资源?快使用搜索试试~ 我知道了~
jconsole 的中文参考资料。JConsole 是一个基于 JMX 的 GUI 工具,用于连接正在运行的JVM,不过此 JVM 需要使用可管理的模式启动。
资源推荐
资源详情
资源评论
一篇 Sun 官方网站上 介绍 JConsole 使用的文章 ,前段时间性能测试的时候大概翻译了一下以便学习,今天整理一下发
上来,有些地方也不知道怎么翻,就保留了原文,可能还好理解点,呵呵,水平有限,翻的不好,大家多多包涵。
JConsole 毕竟是 JDK 自带的东西,功能虽然没有一些商业软件那么强大,但是稳定性好,在大压力情况下也不会发生
什么问题。而且,提供了相对全面的系统监控功能,还是值得一用的。
JConsole
JConsole
JConsole
JConsole
JConsole 是一个基于 JMX 的 GUI 工具,用于连接正在运行的 JVM ,不过此 JVM 需要使用可管理的模式启动。如果 要
把一个应用以可管理的形式启动,可以在启动是设置 com.sun.management.jmxremote 。例如,启动一个可以在本地监
控的 J2SE 的应用
Java2Demo
,需输入以下命令:
JDK_HOME
JDK_HOME
JDK_HOME
JDK_HOME
/bin/java
/bin/java
/bin/java
/bin/java -Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote -jar
-jar
-jar
-jar
JDK_HOME
JDK_HOME
JDK_HOME
JDK_HOME
/demo/jfc/Java2D/Java2Demo.jar
/demo/jfc/Java2D/Java2Demo.jar
/demo/jfc/Java2D/Java2Demo.jar
/demo/jfc/Java2D/Java2Demo.jar
JDK_HOME 需要
是一个含有 JDK5.0 的目录。
要启动 JConsole ,运行
JDK_HOME
JDK_HOME
JDK_HOME
JDK_HOME
/bin/jconsole
/bin/jconsole
/bin/jconsole
/bin/jconsole
一个用于连接的对话框将会打开。对话框的 Local 标签列出了所有本地正在运行的 JVM ,还包含进程的 ID 等信息。
Figure
Figure
Figure
Figure 2
2
2
2 : Local Tab.
JConsole 可以以三种方式连接正在运行的 JVM :
• Local
Local
Local
Local : 使用 JConsole 连接一个正在本地系统运行的 JVM ,并且执行程序的和运行 JConsole 的需要是同一个 用
户。 JConsole 使用文件系统的授权通过 RMI 连接器连接到平台的 MBean 服务器上。这种从本地连接的监控能力 只
有 Sun 的 JDK 具有
• Remote
Remote
Remote
Remote : 使用下面的 URL 通过 RMI 连接器连接到一个 JMX 代理:
service:jmx:rmi:///jndi/rmi://
service:jmx:rmi:///jndi/rmi://
service:jmx:rmi:///jndi/rmi://
service:jmx:rmi:///jndi/rmi://
hostName
hostName
hostName
hostName
:
:
:
:
portNum
portNum
portNum
portNum
/jmxrmi
/jmxrmi
/jmxrmi
/jmxrmi
hostName
填入主机名称,
portNum
为 JMX 代理启动时指定的端口。 JConsole 为建立连接,需要在环境变量 中
设置 mx.remote.credentials 来指定用户名和密码从而进行授权。
• Advanced:
Advanced:
Advanced:
Advanced: 使用一个特殊的 URL 连接 JMX 代理。一般情况使用自己定制的连接器而不是 RMI 提供的连接器 来
连接 JMX 代理,或者是一个使用 JDK1.4 的实现了 JMX 和 JMX Rmote 的应用。
当 JConsole 成功建立连接,它从连接上的 JMX 代理处获取信息,并且以下面几个标签页呈现信息。
• Summary
Summary
Summary
Summary tab.
tab.
tab.
tab. 监控 JVM 和一些监控变量的信息。
• Memory
Memory
Memory
Memory tab.
tab.
tab.
tab. 内存使用信息
• Threads
Threads
Threads
Threads tab.
tab.
tab.
tab. 线程使用信息
• Classes
Classes
Classes
Classes tab.
tab.
tab.
tab. 类调用信息
• VM
VM
VM
VM tab.
tab.
tab.
tab. JVM 的信息
• MBeans
MBeans
MBeans
MBeans tab.
tab.
tab.
tab. 所有 MBeans 的信息
MBeans tab 展示了所有以一般形式注册到 JVM 上的 MBeans 。 MBeans tab 允许你获取所有的平台信息,包括那些不能
从其他标签页获取到的信息。注意,其他标签页上的一些信息也在 MBeans 这里显示。另外,你可以使用 MBeans 标
签管理你自己的应用的 MBeans
使用 MBeans
MBeans
MBeans
MBeans Tab
Tab
Tab
Tab 监控和管理 MBean
MBean
MBean
MBean
注册到 JMX 代理的平台或者应用的 MBeans ,可以通过 MBeans 标签获取。例如 , 内存的 MBeans 如下面定义
public interface MemoryMXBean {
public MemoryUsage getHeapMemoryUsage();
public MemoryUsage getNonHeapMemoryUsage();
public int getObjectPendingFinalizationCount();
public boolean isV erbose();
public void setV erbose(boolean value);
public void gc();
}
内存的 MBean 包括四个属性:
• HeapMemoryUsage .
.
.
. 用于描述当前堆内存使用情况的只读属性
• NonHeapMemoryUsage .
.
.
. 用于描述当前的非堆内存的使用情况的只读属性
• ObjectPendingFinalizationCount .
.
.
. 用于描述有多少对象被挂起以便回收。
• Verbose .
.
.
. 用于动态设置 GC 是否跟着详细的堆栈信息,为一个布尔变量
内存的 MBean 支持一个操作 —— GC ,此操作可以发送进行实时的垃圾回收请求。
Figure
Figure
Figure
Figure 3
3
3
3 : MBeans Tab.
左边的树形结构以名字的方式展示了所有 MBeans 的列表。一个 MBean 对象的名字由一个域的名字和一串关键字属性
组成。 例如,
JVM 的平台的 MBeans 是在 “ java.lang ” 域下的一组, 而日志的 MBeans 则在 " java.util.logging "
域下。
MBean
对象的名字在 javax.management.ObjectName 规范中定义。
当你在树中选中一个 MBean ,属性,方法,或者通知等一些信息会再右边显示出来。如果属性是可写的(属性被标志
为蓝色) ,你可以进行设置。你可以操作在 Operations tab 中列出的操作。你也可以看到由 MBean 发送出来的通知:默
认情况,如果你不订阅通知的话, JConsole 不会收到 MBean 发生过来的通知。你可以点击 "Subscribe "( 订阅 ) 按钮来 堆
通知进行定义,而使用 " Unsubscribe " 按钮来取消订阅
Figure
Figure
Figure
Figure 4
4
4
4 : MBeans Notification.
剩余17页未读,继续阅读
资源评论
tommywoo2003
- 粉丝: 1
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功