一、专业术语

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 -Djava.rmi.server.hostname=192.168.1.122

JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote

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

之后在jdk安装目录bin下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中现有端口冲突的情况下,可随意设置该端口

转载于:https://www.cnblogs.com/shengs/p/4443080.html

jconsole监控tomcat相关推荐

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

    这个也是要学入一下,JVMr 虚拟机原理不可少. 参考配置URL": http://blog.163.com/kangle0925@126/blog/static/2775819820115 ...

  2. 【转载】JConsole监控Tomcat简单配置

    来自:[url]http://blog.itpub.net/23071790/viewspace-701205/[/url] 最近需要参与一些java程序debug和性能调整方面的工作,jconsol ...

  3. JConsole监控Tomcat简单配置

    最近需要参与一些java程序debug和性能调整方面的工作,jconsole是jdk自带的工具,比较好用,以下文章前面大部分翻译自:http://java.sun.com/j2se/1.5.0/doc ...

  4. 用VisualVM和JConsole监控tomcat性能

    最近要做性能测试,除了要测试系统能支撑用户并发数,还要统计应用的对CPU,内存使用情况.要测试的系统基于Java开发,因此试着用VisualVM来监控.VisualVM除了能监控CPU和内存使用情况, ...

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

    从Java 5开始 引入了 JConsole,来监控 Java 应用程序性能和跟踪 Java 中的代码.jconsole是JDK自带监控工具,只需要找到 JDK 安装路径,打开 bin 文件夹,双击  ...

  6. Jconsole远程监控Tomcat

    使用Jconsole远程监控tomcat情况,开启远程监控是比较简单的,只是开启几个设置选项就行了.我使用的是centos系统安装的默认的tomcat6,那么我只需要修改/etc/tomcat6/to ...

  7. 使用JMX透过防火墙远程监控tomcat服务

    为什么80%的码农都做不了架构师?>>>    JDK的bin目录下有jvisualvm或jconsole可以监控本地和远程jvm实例的运行动态(包括cpu,内存等), 对于性能分析 ...

  8. 使用了JDK自带的jconsole查看Tomcat运行情况

    最近对公司的项目进行JVM调优,使用了JDK自带的jconsole查看Tomcat运行情况,记录下配置以便以后参考: 首先,修改Tomcat的bin目录下的catalina.bat文件,在JAVA_O ...

  9. tomcat 8集合memcache所需完整jar包_使用 zabbix 监控 tomcat(包含jvm监控)

    点击上方"民工哥技术之路"选择"星标" 每天10点为你分享不一样的干货  读者福利!多达 2048G 各种资源免费赠送 1.前言: 我们的监控系统是zabbix ...

  10. JConsole监控远程linux下的JVM

    环境: 服务器端: Linux + jdk1.7.0_75 + tomcat 7 本地: Win + jdk1.7.0_55 一.修改/etc/hosts文件 hostname -i 如果显示127. ...

最新文章

  1. 青藏高原matlab掩膜,1982~2000年青藏高原地表反照率时空变化特征
  2. 黄聪:使用srvany.exe将任何程序作为Windows服务运行
  3. 中国移动雄安研究院 2020校园招聘笔试JAVA方向(二)
  4. IdentityServer4 第三方快速入门和示例
  5. 前端翻译:Activating Browser Modes with Doctype
  6. android滤镜效果,Android图像处理之霓虹滤镜效果
  7. 里面怎么打中文字_“标题党”英语应该怎么翻译?不要翻译成“title party”!...
  8. 9600kf功耗和温度评测_i5-9400F与i5-9600KF性能差距大吗?i5 9600KF和9400F区别对比
  9. mac 下的实用工具总结
  10. linux防火墙测试,构建基于ipchains的Linux防火墙
  11. 程序员值得思考的问题
  12. 六石管理学:夸大成绩,当事人自己是否知道
  13. cad计算机绘图实操视频,cad工程制图教程视频
  14. pilz pnoz s4说明书_pilz安全继电器PNOZ端子及接线功能描述(中英对照版)
  15. Android dex2jar反编译dex文件报错 Detail Error Information in File .\classes-error.zip
  16. elastic serach学习
  17. word页码怎么从指定页开始设置?
  18. 什么是枚举?(个人理解)
  19. VM虚拟机安装篇·VMware Workstation Pro(虚拟机)安装Win10操作系统(图文介绍超详细)
  20. 软件测试之BUG描述

热门文章

  1. net core 模型绑定与之前版本的不同-FromBody 必须对应Json格式
  2. Thinkphp5 接口中直接返回数组提示variable type error: array
  3. 用 js 写的 WebSocketHeartBeat,心跳检测
  4. mysql考试_mysql考试总结
  5. 全网首发:ScrollBarUI混淆后效果错误的分析
  6. error: possibly undefined macro: LT_SYS_SYMBOL_USCORE please use m4_pattern_allow
  7. 重装系统解决:CUPS服务未启动,不能管理打印机
  8. ERROR: cuda requested, but not all dependencies are satisfied: ffnvcodec
  9. lua.c:82:10: fatal error: readline/readline.h: 没有那个文件或目录
  10. 输入法候选词排列的两种新方式