VisualVM介绍

VisualVM是集成了多个JDK命令工具的一个可视化工具,它主要用来监控JVM的运行情况,可以用它来查看和浏览Heap Dump、Thread Dump、内存对象实例情况、GC执行情况、CPU消耗以及类的装载情况。
在JDK Update7之后,VisualVM作为JDK的一部分发布,但同时VisualVM也发布独立的版本。VisualVM必须运行在JDK1.6以上的VM环境下,但可以用它来监控JDK1.4以上的JVM
下载地址:http://visualvm.java.net/download.html

配置jetty------匿名

修改启动脚本:

vi /srv/jetty6/mtct

在RUN_CMD后面追加:

#指定hostname 一般情况需要重新指定hostname,否则连接不成功
-Djava.rmi.server.hostname=192.168.0.147
#指定hostname 指定端口默认:1099
-Dcom.sun.management.jmxremote.port=8899
#禁止ssl连接
-Dcom.sun.management.jmxremote.ssl=false #禁止用户认证
-Dcom.sun.management.jmxremote.authenticate=false

另一种配置------认证配置

#指定hostname 一般情况需要重新指定hostname,否则连接不成功
-Djava.rmi.server.hostname=192.168.0.147
#指定hostname 指定端口默认:1099
-Dcom.sun.management.jmxremote.port=8899
#禁止ssl连接
com.sun.management.jmxremote.ssl=false #开启用户认证
com.sun.management.jmxremote.authenticate=true #认证用户名密码
-Dcom.sun.management.jmxremote.password.file=/opt/home/lichengwu/jvm/management/jmxremote.password
#访问模式
-Dcom.sun.management.jmxremote.access.file=/opt/home/lichengwu/jvm/management/jmxremote.access

注意:jmxremote.password和jmxremote.access文件只允许启动用户名对该文件拥有读写权限 ,我们服务用root启动 所以:

[root@dog:management]# chmod 600 *
[root@dog:management]# chown root:root *
[root@dog:management]# ll
total 8
-rw------- 1 root root 29 Nov 14 16:38 jmxremote.access
-rw------- 1 root root 26 Nov 14 16:38 jmxremote.password
[root@dog:management]#

如果权限设置不正确会报错:Error: Password file read access must be restricted

jmxremote.password模板:

[用户名]       [密码]
mtct ct.meituan
test test

jmxremote.access模板:

[用户名]      [权限]
mtct readwrite
test readonly

第三种配置------SSL

参考:http://download.oracle.com/javase/1.5.0/docs/guide/management/agent.html#SSL_enabled

  1. 在服务器上使用keytool创建密钥对
    keytool是java平台自带的一个密钥和证书管理工具,使用keytool创建密钥对:

    keytool -genkey -alias jetty -keystore /opt/home/lichengwu/jvm/ssl/jettyKeyStore
    

    按照提示输入相关信息(包括设定密码、姓、组织名等),这些信息是可以随便输入的,但从产品角度讲应该统一设定。输入的密码在今后操作中均需要使用。

  2. 导出公钥
    keytool -export -alias jetty -keystore /opt/home/lichengwu/jvm/ssl/jettyKeyStore -file /opt/home/lichengwu/jvm/ssl/jetty.cert
    
  3. 将公钥导入至需要运行VisualVM的机器。(我的是windows 放在 Z:\jvm\ssl\jetty.cert)
    keytool -import
    -alias jetty -keystore Z:\jvm\ssl\jettyKeyStore -file Z:\jvm\ssl\jetty.cert
  4. 修改jetty的启动脚本
    将-Dcom.sun.management.jmxremote.ssl="false
    "
    修改为:
    -Dcom.sun.management.jmxremote.ssl="true
    "
    ,并添加:
    -Djavax.net.ssl.keyStore=/opt/home/lichengwu/jvm/ssl/jettyKeyStore
    -Djavax.net.ssl.keyStorePassword=123456
  5. 使用如下参数启动VisualVM:
    VisualVM -J-Djavax.net.ssl.trustStore=Z:\jvm\ssl\jettyKeyStore
    

    监控

启动VisualVM,添加远程主机:


 输入远程主机地址:192.168.0.147


 修改端口,如果是默认端口,可可跳过


 添加JMX连接

完成后双击:

利用VisualVM监视远程JVM的更多相关文章

  1. 使用Java VisualVM监控远程JVM

    我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少, 目前有多个监控工具, 相比JProfiler对系统资源尤其是内存的消耗是非常庞大,JDK1.6开始自带的VisualV ...

  2. Java VisualVM监控远程JVM

    我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少, 目前有多个监控工具, 相比JProfiler对系统资源尤其是内存的消耗是非常庞大,JDK1.6开始自带的VisualV ...

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

    VisualVM是Sun的一个OpenJDK项目,其目的在于为Java应用创建一个整套的问题解决工具.它集成了多个JDK命令工具的一个可视化工具,它主要用来监控JVM的运行情况,可以用它来查看和浏览H ...

  4. 利用VisualVm和JMX远程监控Java进程

    自Java 6开始,Java程序启动时都会在JVM内部启动一个JMX agent,JMX agent会启动一个MBean server组件,把MBeans(Java平台标准的MBean + 你自己创建 ...

  5. JVM 利用 VisualVM 对高并发项目进行性能分析(转)

    出处:  深入理解 Java 虚拟机-如何利用 VisualVM 对高并发项目进行性能分析 前面在学习JVM的知识的时候,一般都需要利用相关参数进行分析,而分析一般都需要用到一些分析的工具,因为一般使 ...

  6. 使用VisualVM监控远程服务器JVM

    VisualVM是JDK自带的一款全能型性能监控和故障分析工具,包括对CPU使用.JVM堆内存消耗.线程.类加载的实时监控,内存dump文件分析,垃圾回收运行情况的可视化分析等,对故障排查和性能调优很 ...

  7. visualVM使用jstatd和jmx连接远程jvm及遇到的问题解决

    visualVM使用jstatd和jmx连接远程jvm及遇到的问题解决 JMX方式: 编辑Tomact里bin目录的catalina.sh . 在其头部加入 JAVA_OPTS=" -Dco ...

  8. VisualVM监控远程服务器JVM

    VisualVM是JDK自带的一款全能型性能监控和故障分析工具,包括对CPU使用.JVM堆内存消耗.线程.类加载的实时监控,内存dump文件分析,垃圾回收运行情况的可视化分析等,对故障排查和性能调优很 ...

  9. VisualVM连接远程Java进程

    jstatd是一个RMI(Remove Method Invocation)的server应用,用于监控jvm的创建和结束,并且提供接口让监控工具(如VisualVM)可以远程连接到本机的jvms . ...

随机推荐

  1. Ajax json jquery实现菜单案例

    需求: 运用AJAX请求文件menu.json,配置菜单栏,并实现以下功能点: 1. 点击向左箭头,菜单向左移动,隐藏 2. 点击向右箭头,菜单向右移动,显示3. 点击一级菜单,被点击菜单的子菜单显示 ...

  2. FastDFS原理系列文章

    FastDFS原理系列文章 基于FastDFS 5.03/5.04 2014-12-19 一.概述 FastDFS文档极少,仅仅能找到一些宽泛的架构文档,以及ChinaUnix论坛上作者对网友提问的一 ...

  3. linux网络启动报错

    报错信息: shutting down interface eth0: error:device "eth0" (/org/freedsktop/networkMaager/Dev ...

  4. Oracle 单表选择率

    听了猫大师的课,对Oracle CBO又加深了一步理解: 单表选择率: selectivity=1/ndv*a4nulls ocard来自dba_tables.num_rows ndv 来自dba_t ...

  5. TS4

    类: 类与对象字面量和接口差不多,比较两个类类型的对象时,只有实例的成员会被比较. 静态成员和构造函数不在比较的范围内. class Animal { feet: number; constructo ...

  6. h5-注册

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWYAAAIpCAIAAAAeogVlAAAgAElEQVR4nOy9W1gb6Z3/OTd7s9d7t8 ...

  7. DB-MySQL:MySQL 复制表

    ylbtech-DB-MySQL:MySQL  复制表 1.返回顶部 1. MySQL 复制表 如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等. 如果仅仅使用CREATE TA ...

  8. Caused by: java.lang.NoClassDefFoundError: org/apache/neethi/AssertionBuilderFactory

    转自:https://blog.csdn.net/iteye_8264/article/details/82641058 1.错误描述 严重: StandardWrapper.Throwable or ...

  9. C# Keywords - as

    记录一下在日常开发过程中遇到的一些C# 基础编程的知识! 希望以后能用的着.知识是在平常的开发过程中去学到的.只有用到了,你才能深入的理解它,并用好它. 本资料来源于:MSND 下面是一些相关的cod ...

  10. WebApi不支持跨域访问