《Jconsole使用手册.ppt》由会员分享,可在线阅读,更多相关《Jconsole使用手册.ppt(15页珍藏版)》请在优知文库上搜索。
1、jConsole简介jConsole是一个JMX兼容的监视工具。它使用Java虚拟机的JMX机制来提供运行在Java平台的应用程序的性能与资源耗费信息。其监控内容包括:内存、线程、类、CPU使用等。通过监控信息,可以很清晰的了解到当前程序是否运行正常:如内存泄露、死锁、类加载异常等。jConsole使用jConsole位于jdkbin目录下,如图所示: jConsole监控tomcat配置 jConsole监控weblogic配置 jConsole使用示例 MBean使用示例jConsole监控tomcat配置打开tomcatbin目录下catalina.bat文件:添加以下语句:set JA
2、VA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.port=9090 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false注:port=9090:远程连接时用到的端口。authenticate=true:远程连接时进行身份验证,如值为false则不需要进行身份验证。身份验证设置打开jdkjrelibmanagement目录(监控tomcat,对应的为系统环境变量中指向的jdk;监控weblogic,对应的则为webl
3、ogic安装目录下的jdk)。复制jmxremote.password.template文件,命名为jmxremote.password打开jmxremote.password文件,添加用户名密码,如:sunyard sunyard。打开jmxremote.access文件,为添加的用户授权,如:sunyard readwrite。身份验证设置注意事宜如服务器启动时报错:必须限制口令文件读取访问。则如下配置:将jmxremote.password “组或用户名”中除当前所有者外,其他的都删除;当前所有者只保留读取权限。jConsole监控weblogic 配置本地连接设置:方法一:打开beau
4、ser_projectsdomainsbase_domainbin startWebLogic.cmd 文件添加以下语句:set JAVA_OPTIONS=%SAVE_JAVA_OPTIONS% -Dcom.sun.management.jmxremote方法二:如图在快捷方式中进行添加: 远程连接设置远程连接设置打开beauser_projectsdomainsbase_domainbin setDomainEnv.cmd 文件找到set MEM_ARGS=-Xms256m Xmx512m 修改为:set MEM_ARGS=-Xms256m Xmx512m -Dcom.sun.managem
5、ent.jmxremote -Dcom.sun.management.jmxremote.port=9090 -Dcom.sun.management.jmxremote.authenticate=“false -Dcom.sun.management.jmxremote.ssl=false(身份验证设置参照Jconsole监控tomcat)Java内存区划分Eden Space (heap): 内存最初从这个线程池分配给大部分对象。Survivor Space (heap):用于保存在eden space内存池中经过垃圾回收后没有被回收的对象Tenured Generation (heap)
6、:用于保持已经在 survivor space内存池中存在了一段时间的对象。Permanent Generation (non-heap): 保存虚拟机自己的静态(refective)数据,例如类(class)和方法(method)对象。Java虚拟机共享这些类数据。这个区域被分割为只读的和只写的,Code Cache (non-heap):HotSpot Java虚拟机包括一个用于编译和保存本地代码(native code)的内存,叫做“代码缓存区”(code cache)jConsole监控程序运行示例1下图为压力测试下,程序运行一段时间后停止的内存使用情况,从图中可看到:程序运行正常,内
7、存及时回收。jConsole监控程序运行示例2从下图可以发现:内存没隔半小时会就会有较大幅度上升,并且没有下降。由此可说明:部分内存没有及时回收,存在泄露问题。MBean管理使用MBean tab展示了所有以一般形式注册到JVM上的MBean。通过它可以获取所有的平台信息 。示例:示例:开启/关闭虚拟机的详细跟踪内存池情况统计线程相关信息及操作开启开启/关闭虚拟机的详细跟踪关闭虚拟机的详细跟踪mBean中java.lang.Memory的verbose属性(true|false)内存池情况统计java.lang/memoryPool节点下,内存池各分区信息统计。线程相关信息及操作如:findMonitorDeadlockedThreads,操作返回一组死锁的线程IDgetThreadInfo. 返回线程的信息。包括线程的名称、堆栈信息,导致当前线程阻塞的锁,如果有的话,还返回哪儿线程持有这个锁,和这个线程信息的统计。getThreadCpuTime.返回指定线程消耗的CPU时间。