JConsole监控jvm

java程序jvm监控一直是个蛋疼的问题,无意中网上看到JDK自带JConsole 可以监控JVM并且支持可视化图形,就自己测试了一下。

在网上看到VisualVM也支持监控JVM,查了下发现这个是JConsole的升级版,还能监控和分析垃圾回收和线程。

首先JConsole这个是JDK里面自带的工具  在JAVA_HOME/bin目录下,今天主要测试远程监控JVM

1.设置好需要远程机器的Tomcat (这里我的机器是centos)

修改catalina.sh

在 ----- Execute The Requested Command --这一行上面设置

JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=*****"

修改完后重启tomcat    netstat -an| grep 12345  查看配置的端口号是否启动

启动成功后就可以远程连接了

错误: 代理抛出异常错误: java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: centos4: centos4: 未知的名称或服务

Error: Exception thrown by the agent : java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: centos4: centos4: Name or service not known

原因是/etc/hosts文件里没有主机名为:linux,解决方法就是在hosts文件中加入linux,修改后的hosts的文件是:

127.0.0.1  linux localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

2.启动JConsole

Jconsole能捕获到以下信息:

概述

- JVM概述和一些监控变量的信息内存

- 内存的使用信息线程

- 线程的使用信息类

- 加载java类的信息VM

- JVM摘要MBeans

- 所有MBeans的信息

其他的就根据需要监测即可

时间: 2024-08-11 14:55:35

JConsole监控jvm的相关文章

linux下监控jvm 使用的方法

之前一直用jconsole监控jvm,图形界面简单易用,最近因为需要在纯linux下进行操作,所以总结了一下 linux下监控jvm的例子,这次主要用到了jstat工具, 各个参数意义: jstat -class pid:显示加载class的数量,及所占空间等信息. jstat -compiler pid:显示VM实时编译的数量等信息. jstat -gc pid:可以显示gc的信息,查看gc的次数,及时间.其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数

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

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

jconsole,jvisualvm监控jvm配置方法

在平常工作中监控jvm是一项必要的工作,但总是用命令行方式不能实时进行监控,jconsole就是一款可视化的即时监控工具.jvisualvm与jconsole用法基本一样. 个人倾向于使用jconsole,虽然jvisualvm界面更漂亮,但堆内存中每个区的使用情况不显示,只显示堆的总大小和已使用的大小,不能看到eden,surivor等详情使用情况,所以我一般使用jconsole来看堆内存更为详情的情况. 1.首先安装jdk,在bin目录下找到jconsole,双击打开. 2.一般采用远程安装

在resin配置参数实现JConsole远程监控JVM

在Resin配置参数实现JConsole远程监控JVM 在Resin中配置中配置下列参数,就可以是实现了! <jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg> <jvm-arg>-Dcom.sun.management.jmxremote.port=9999</jvm-arg> <jvm-arg>-Dcom.sun.management.jmxremote.ssl=false</jvm-arg

在resin配置參数实现JConsole远程监控JVM

在Resin配置參数实现JConsole远程监控JVM 在Resin中配置中配置下列參数,就能够是实现了! <jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg> <jvm-arg>-Dcom.sun.management.jmxremote.port=9999</jvm-arg> <jvm-arg>-Dcom.sun.management.jmxremote.ssl=false</jvm-arg

使用本地JConsole监控远程JVM (转)

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

本地win下JConsole监控远程linux下的JVM

环境:服务器端: Linux + jdk1.7.0_75 + tomcat 7本地: Win + jdk1.7.0_55 一.修改/etc/hosts文件 hostname -i 如果显示127.0.0.1时,修改/etc/hosts 将127.0.0.1替换成linux服务器的真实ip 二.修改 catalina.sh文件 vim  /usr/local/tomcat7**/bin/catalina.sh   #进入tomcat的bin目录下 在# OS specific support. 

JMX远程监控JVM

远程监控JVM状态需要在JVM启动的时候需要加上一段代码开启这个功能.(以下全部以ubuntu-14-04-server.jdk1.8.tomcat7.0环境为基础) 配置的时候分两种情况:1.无需配置用户访问权限:2.需要配置用户访问权限 先看第一种:首先更改tomcat启动参数(vim catalina.sh)找到 # OS specific support. $var _must_ be set to either true or false. 添加如下变量:JAVA_OPTS="-Dco

Java千百问_07JVM架构(018)_如何监控jvm的运行情况

点击进入_更多_Java千百问 1.如何监控jvm的运行情况 了解jvm内存模型看这里:java内存模型是什么样的 了解jvm内存管理看这里:jvm是如何管理内存的 了解jvm垃圾回收机制看这里:java垃圾回收机制是什么 了解jvm内存优化看这里:java内存如何优化 我们通常使用Jdk工具来监控jvm的运行情况,当然目前有很多第三方产品是通过jdk提供的api来组织数据进行监控的.具体来说有如下监控软件: Jconsole jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用.对垃圾回