Jconsole是sun公司在JDK1。5 发行的一个工具,该工具在JAVA_HOME的bin目录下,是由Swing 做的界面。
启动jconsole我们会看到两个选项 本地的,和远程
本地的使用方法很简单,双击PID,我们就可以看到堆内存,线程,类,CPU的使用情况。
任何语言主要就是在内存的管理上有些差别,其他仅仅是语法不同,JAVA在内存管理上和我们学的C++ 差别很大
C++ 分五个区 堆,栈,静态/全局,文字常量,代码区
JAVA分堆/非堆
堆分 Eden Span 线程池分配大部分对象
Survivor Space 堆 放Eden Space 里经过垃圾回收后,没有被回收掉的垃圾
Tenured Generation 堆 用于存放长时间回收不掉的垃圾
非堆内存
code cache 放你编写的类
Perm Gen shared-rw 读写
Perm Gen shared-ro 只读
Perm Gen 持久化内容
线程
可以看一下当前进程中的线程数量,每个线程阻塞次数,等待等情况
类
可以看到当前类在VM中的数量,加载多少,卸载多少
可以看到VM运行时间,JIT解释器
线程数,守护线程,类装载等信息
分配内存,垃圾收集器的情况
以及你的这个VM启动参数
当前可以管理的资源
可以快速管理整个VM
远程监控
需要在java_opt里加一些代码
-Dcom.sun.management.jmxremote.port=1090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
set CATALINA_OPTS=-server - Xdebug - Xnoagent - Djava.compiler =NONE - Xrunjdwp:transport = dt_socket,server = y,suspend = n,address =8787
startup.sh jpda 就可以,默认端口8000
在ECLIPSE上的使用注意事项
http://java.sun.com/developer/technicalArticles/J2SE/monitoring/
怎么开发MBEAN 有兴趣的人可以找一下JSR文档
Jconsole是JDK1.5引入的用于监控Java应用的工具,通过Swing界面展示堆内存、线程、类和CPU使用情况。它支持本地和远程连接。本地监控只需双击PID,而远程监控需要在启动参数中配置JMX端口。文章还介绍了JAVA内存的堆和非堆区域,以及如何在Eclipse中使用Jconsole进行远程监控。
624

被折叠的 条评论
为什么被折叠?



