visualvm监控jvm及远程jvm监控方法

VisualVM是Sun的一个OpenJDK项目,其目的在于为Java应用创建一个整套的问题解决工具。它集成了多个JDK命令工具的一个可视化工具,它主要用来监控JVM的运行情况,可以用它来查看和浏览Heap Dump、Thread Dump、内存对象实例情况、GC执行情况、CPU消耗以及类的装载情况。 Java开发人员可以使用 VisualVM创建必要信息的日志,系统管理人员可用来监控及控制Java应用程序在网络中的运行状况。 
   下载页面 : https://visualvm.dev.java.net/download.html

文档地址 : https://visualvm.dev.java.net/docindex.html

入门文档 : https://visualvm.dev.java.net/zh_CN/gettingstarted.html



安装插件
    通过安装 VisualVM 更新中心提供的插件,可以向 VisualVM 添加功能。
    1. 从主菜单中选择“工具”>“插件”。
    2. 在“可用插件”标签中,选中该插件的“安装”复选框。单击“安装”。
    3. 逐步完成插件安装程序。
    



功能    
    1. 概述
        查看jvm信息及系统配置
    

2. 监视
        了解项目运动的概况
    

3. visual gc
        可以看到内存gc的详细情况
        



远程监控    
    1. 通过jstatd启动RMI服务
        配置java安全访问,将如下的代码存为文件 jstatd.all.policy,放到JAVA_HOME/bin中,其内容如下,
        grant codebase "file:${java.home}/../lib/tools.jar" {

permission Java.security.AllPermission;

};
            
          执行命令jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.1.8 &(192.168.1.8  为你服务器的ip地址,&表示用守护线程的方式运行)
          jstatd命令详解 :http://hzl7652.iteye.com/blog/1183182 
         
          打开jvisualvm, 右键Remort,选择 "Add Remort Host...",在弹出框中输入你的远端IP,比如192.168.1.8. 连接成功.
    
    2. 配置JMX管理tomcat
        打开Tomcat的bin/catalina.bat,如果为Linux或unix系统,则为catalina.sh文件 。 
           无限制访问

set JAVA_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9008 -Dcom.sun.management.jmxremote.authenticate=false -    Dcom.sun.management.jmxremote.ssl=false

需要用户名和密码访问

JAVA_OPTS=‘-Xms128m -Xmx256m -XX:MaxPermSize=128m

-Djava.rmi.server.hostname=192.168.1.8

-Dcom.sun.management.jmxremote.port=8088

-Dcom.sun.management.jmxremote.ssl=false

-Dcom.sun.management.jmxremote.authenticate=true

-Dcom.sun.management.jmxremote.password.file=/usr/java/default/jre/lib/management/jmxremote.password

-Dcom.sun.management.jmxremote.access.file=/usr/java/default/jre/lib/management/jmxremote.access‘

(jmxremote.access 在JAVA_HOME\jre\lib\management下有模板)
         jmxremote.access 中显示
         monitorRole   readonly

controlRole   readwrite

jmxremote.password中显示
        monitorRole  QED            (QED为密码)

controlRole   R&D

重新在visualvm中打开远程tomcat就可以使用JMX带来的功能了

时间: 2024-12-28 14:32:08

visualvm监控jvm及远程jvm监控方法的相关文章

visualvm监控jvm及远程jvm监控方法(转)

VisualVM是Sun的一个OpenJDK项目,其目的在于为Java应用创建一个整套的问题解决工具.它集成了多个JDK命令工具的一个可视化工具,它主要用来监控JVM的运行情况,可以用它来查看和浏览Heap Dump.Thread Dump.内存对象实例情况.GC执行情况.CPU消耗以及类的装载情况. Java开发人员可以使用 VisualVM创建必要信息的日志,系统管理人员可用来监控及控制Java应用程序在网络中的运行状况.    下载页面 : https://visualvm.dev.jav

使用Java VisualVM监控远程JVM cpu jps

我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少, 目前有多个监控工具, 相比JProfiler对系统资源尤其是内存的消耗是非常庞大,JDK1.6开始自带的VisualVM就是不错的监控工具.这个工具就在JAVA_HOME\bin\目录下的jvisualvm.exe, 双击这个文件就能看到一个比较直观的界面 从左边Applications树中可以知道,不光可以监控本地JVM运行情况, 还可以监控远程机器上的JVM运行情况.本地监控:只要打开某个JAVA程序就会自动的

使用Java visualVM监控远程JVM

1 监控远程tomcat 对于被监控的tomcat,需要修改tomcat的bin目录下的Catalina.sh配置文件,增加如下配置. JAVA_ OPTS="$JAVA_ OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9004 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=f

Hadoop jar配置使用JMX进行远程JVM监控

背景:  编写了一个MapReduce程序,发现该程序内存占用非常多,需要有一种方法来分析内存详细的占用情况. 可以使用linux上的pmap –d <PID>来看进程逻辑地址空间使用情况,但是会有很多anno区域,显然这不能够满足同学们的好奇心. 在这篇文章Eclipse远程调试HDP源代码中,提到使用JMX的方法对HDP进行远程调试.JMX(Java Management Extensions,即Java管理扩展),望文生义一下,可知这个机制是与管理相关的.在这个机制的基础上,可以对JVM

使用jvisualVm监控本地和远程的jvm

jvisualVm是jdk自带的可视化监控工具,功能很强大,可安装各种扩展插件.本篇不打算讲解如果使用详细的功能,只讲在windows环境怎么监控本地和远端(一般是无界面的linux系统)的java进程. 1.在远程机器上添加权限策略文件 在服务器{JAVA_HOME}/bin目录建立文件:jstatd.all.policy(名字随便,符合*.policy即可), 文件内容为: grant codebase "file:${java.home}/../lib/tools.jar" { 

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

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

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

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

添加 Centos 远程JVM监控

某日 - 测试组 MM 要进行服务压测,询问本猿如何查看线上服务的jvm内存,cpu消耗情况.果断放下手中代码.为MM 耐心解惑 ~ ~ 1.启动项目的 .sh 方法内,启动配置下 添加配置信息: -Xms2048m -Xmx2048m [可省略] -Dcom.sun.management.jmxremote [开启 jmx,jdk 1.5 前需要手动开启,后面jdk版本可省略] -Dcom.sun.management.jmxremote.ssl=false [不开启 ssl 通道] -Dco

JVM 运行参数 &amp; 代码监控

1.Java代码监控 JDK提供java.lang.management包, 其实就是基于JMX技术规范,提供一套完整的MBean,动态获取JVM的运行时数据,达到监控JVM性能的目的. package com.agan.jvm; import java.lang.management.*; import java.util.Arrays; import java.util.List; public class JVMDemo { public static void main(String[]