jconsole监控tomcat

一、专业术语

GC垃圾回收机制:当需要分配的内存空间不再使用的时候,JVM将调用垃圾回收机制来回收内存空间。

JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

JConsole是一个基于JMX的GUI工具,用于连接正在运行的JVM。

二、操作步骤

1.在tomcat目录下,bin/catalina.sh文件中,添加如下java opt内容:

1) 如果是无须验证添加

JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=12345"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"

如无须验证,服务就设置完成了。

2) 如需密码验证

JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=12345"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=true"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.pwd.file=/usr/java/jdk1.7.0_45/jre/lib/management/jmxremote.password"

2.将/usr/java/jdk1.7.0_45/jre/lib/management下的jmxremote.password.template,拷贝一份叫jmxremote.password。进去将内容全部删去,添加一行:

controlRole   R&D    (用户名,密码)

3.将jmxremote.password和jmxremote.access改成600权限:

chmod 600 jmxremote.access  jmxremote.password

之后在JConsole里添加用户名,密码就可以了。

注:如果JConsole不能访问本机的程序的话,在java opt里添加如下内容:

-Dcom.sun.management.jmxremote

三、具体介绍

下面说说如何分析,如何使用这六个标签

· 概览:显示JVM和被监视值的汇总信息

· 内存:显示内存使用信息

· 线程:显示线程使用信息

· 类:显示类装载信息

· VM摘要:显示java VM信息

· MBeans:显示 MBeans信息

概览:

注:对着图点击右键可以保存数据到CSV文件,以后可以使用其他工具来分析这些数据。

内存:

这里可以参看堆内存,非堆内存,内存池的状况总体内存的分配和使用情况以及不同的GC进行垃圾回收的次数和时间。可以手动进行GC查看内存变化。

线程:

左下角显示所有的活动线程(如果线程过多,可以在下面的过滤栏中输入字符串过滤出你想要观察的线程)。点击某个显示会显示这个线程的名称、状态、阻塞和等待的次数、堆栈的信息。

统计图显示的是线程数目的峰值(红色)和当前活动的线程(蓝色)。

另外下面有个按钮“检测到死锁”,有时候会有用处。

类:

图表显示了 类加载/时间

红线是类加载总数(包括后来卸载的)

蓝线表示当前的类加载数量。

选项卡底部的详细资料显示了自JVM启动后类加载的总量,当前加载量和卸载量。

VM摘要:

MBeans:

左边的树形结构显示了所有的MBean,按其对象名排序。当在树种选择了一个MBean之后,其属性、操作、通知和其他信息会在右边显示。

如果属性值是可写的(可写会蓝色显示),你可以设置属性值。你也可以调用在操作选项卡中显示的操作。

四、参考资料

JConsole远程连接:
    http://java-boy.iteye.com/blog/608438

如何利用 JConsole观察分析Java程序的运行,进行排错调优:
    http://jiajun.iteye.com/blog/810150

JConsole监控Tomcat简单配置:
    http://blog.itpub.net/23071790/viewspace-701205/

/bin/catalina.sh文件开头加入:

-Djava.rmi.server.hostname=192.168.1.122
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=911
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
比如说我需要了解在压力测试过程中Linux系统中resin服务器的资源占用情况,那么我就可以在resin的启动项中加入上述信息,这样通过本机Windows中JDK的Jconsole来监控了。
其中第一个参数可以用来设置欲连接的Linux机器的IP地址,该项必须设置,否则远程连接会因为解析到127.0.0.1出现连接失败的情况。
如果不设置该项,也可以通过修改Linux的/etc/hosts文件,使hostname -i指向正确的IP,所以还是该选项更为方便。
第三个参数是设置欲连接到Linux机器上的端口号,在不跟Linux中现有端口冲突的情况下,可随意设置该端口

时间: 2024-12-29 01:50:50

jconsole监控tomcat的相关文章

Jconsole 监控tomcat

通过jconsole监控可以获取监控tomcat的相关的数据信息 如何通过代码来获取其中的线程和内存状况呢? 首先要配置好jconsole监控的相关配置,一搜基本就是那一个, 配置配不好的话接下来的工作就做不好了,所有要先配置好,然后可以上代码了: 1 package one; 2 3 import java.io.IOException; 4 import java.lang.management.MemoryMXBean; 5 import java.lang.management.Memo

通过JCONSOLE监控TOMCAT的JVM使用情况

这个也是要学入一下,JVMr 虚拟机原理不可少. 参考配置URL“: http://blog.163.com/[email protected]/blog/static/27758198201152772336212/ JConsole的使用: JConsole是一个基于JMX的GUI工具,用于连接正在运行的JVM.可以监控本地和远程的java程序. Jconsole 可以监视本地Tomcat和远程服务器上的Tomcat 监视前需要做如下配置: 1.如果要监视远程Java进程,需要在远程服务器上

通过jconsole监控tomcat JVM 内存、线程、CPU

从Java 5开始 引入了 JConsole,来监控 Java 应用程序性能和跟踪 Java 中的代码.jconsole是JDK自带监控工具,只需要找到 JDK 安装路径,打开 bin 文件夹,双击 jconsole即可. 0.监控前的准备 将代码写入tomcat/bin/catalina.sh CATALINA_OPTS=-Djava.awt.headless=true JAVA_OPTS="-Djava.rmi.server.hostname=192.168.0.1 $JAVA_OPTS -

Jconsole监控tomcat 的JVM内存的设置

主要参考这位仁兄的文章  http://elf8848.iteye.com/blog/471676 照做后发现还是不行,原来是Linux服务器配置了多块网卡,在设置 Djava.rmi.server.hostname  属性为当前服务器的IP后,就可以连接到了. 请编辑 tomcat/bin/catalina.sh ,在JAVA_OPTS 下边再添加以下参数即可. JAVA_OPTS="-Dcom.sun.management.jmxremote.port=PORT -Djava.rmi.ser

LoadRunner监控Tomcat的几种方法

通过JConsole监控Tomcat 1.打开tomcat5的bin目录中的catalina.bat文件,在头部注释部分的后面加上: set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false 2.修改JMX远程访问授权. 进入JAVA安装目录

jconsole监控远程weblogic和tomcat

jconsole可以对远程主机上的java进程的内存使用情况进行监控.本文将讲解如何使用jconsole监控远程主机上的weblogic和tomcat. 一.环境 1.本机环境:windows xp+jconsole(jdk1.6) 2.远程环境1:sunos(solaris.jdk1.6)+weblogic 3.远程环境2:redhat(jdk1.6)+tomcat 本文将介绍两种环境下的配置,两者配置基本上一样,其他的系统应该也差不多. 二.远程连接sunos(solaris)+weblog

如何使用JCONSOLE 监控eclipse的tomcat

在默认情况下,使用jconsole 监控本地tomcat 是不需要任何配置的,直接连接就可以监控tomcat.   但是在eclipse 下启动是监控不了.   解决方法:   设置jvm参数:     -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false   重新打开jconsole就可

jconsole监控远程linux tomcat运行情况的配置 (转)

来自:http://zhumeng8337797.blog.163.com/blog/static/100768914201242494649455/ 步骤如下: 1.编辑tomcat/bin/catalina.sh Bash代码 vi catalina.sh 在其中“ # ----- Execute The Requested Command -----------------------------------------” 之前插入新的一行(中间没有换行),内容如下: Vi catalin

使用本地JConsole监控远程JVM(最权威的总结)

问题背景 Tomcat经常崩溃crash,想看看JVM内存使用情况,就想到了用Jconsole监控,以前只是监控本地的JVM,这次要监控远程的,遇到了不少问题. 经过几个小时的努力,参考了众多网友的资料之后,才最终解决了这个问题. 比较坑爹的是,网上的资料,竟然没有一个是:完美无缺的,没有一篇文章提到了"jmxremote.access"这个文件的重要性. 第一阶段 找到了2种配置,是否需要输入密码. JAVA_OPTS="$JAVA_OPTS -Dcom.sun.manag