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

  • JMX方式:

    1. 编辑Tomact里bin目录的catalina.sh . 在其头部加入

      JAVA_OPTS="

      -Dcom.sun.management.jmxremote

      -Dcom.sun.management.jmxremote.port=8998 这个端口可以改

      -Dcom.sun.management.jmxremote.rmi.port=8998

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

      -Dcom.sun.management.jmxremote.authenticate=ture 需要鉴权 若为false则不需要下两行的配置

      -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password

      -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access

      -Djava.rmi.server.hostname=xxx.xxx.xxx.xxx" 服务器ip地址

    2. 编辑Tomcat里conf目录的server.xml 加入监听器:

         <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="8998" rmiServerPortPlatform="8999" />
      • 其中8998可以改为你想要的端口
    3. 在conf目录新建两个文件

    • jmxremote.access文件内容:

      username  readwrite

      第一个参数是用户名,第二个是这个用户拥有读取/写入权限

    • jmxremote.passwd文件内容:

      username password

      第一个参数为access的文件里的用户名,password为要设置的密码

    1. 去iptables开启刚刚设置的端口,这里为8998
    • vim /etc/sysconfig/iptables
      -A INPUT -p tcp -m state --state NEW -m tcp --dport 8998 -j ACCEPT
    1. 这个时候理论上可以开启visualVM然后添加远程主机监控了,但是由于JMX还需要监听一到两个随机端口。
    • 会报错:

      无法使用service:jmx:rmi连接
    • 解决方法有两种

      1. 是用 jps 得到pid,然后使用 lsof -i|grep {pid} 命令得到监听的其他端口

        然后将在iptables开放。

      2. 关闭iptabels防火墙,service iptables stop。

    • 之后就可以在本地机上开visualVm添加远程主机,不使用ssl连接。开启监控啦

    1. jmx方式只能针对一个jvm,并且不支持visualGC。下面介绍第二种。
  • jstatd方式

    1. 使用cd $JAVA_HOME 到jdk的根目录,bin文件夹里面新建jstatd.all.policy文件。

      • 内容如下:

        grant codebase "file:${java.home}/../lib/tools.jar" {
        permission java.security.AllPermission;
        };
    2. 在bin目录下启动Jstatd。

      • ./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.0.23

        hostname为外网ip。

    3. 这个使用本地主机上使用jps xxx.xxx.xxx.xxx的方式访问远程报错:java.rmi.ConnectException: Connection refused to host: xxx.xxx.xxx.xxx;

      • 原因 : jstatd会随机监听1,2个端口。
      • 解决方法: 同上(用lsof命令查看监听的端口)。
    4. 这个时候visualVM会自动刷新进程,一般两三秒就可以看到远程服务器上的所有jvm进程。

      本文地址:http://www.cnblogs.com/zhengshiqiang47/p/7634522.html

visualVM使用jstatd和jmx连接远程jvm及遇到的问题解决的更多相关文章

  1. VisualVM使用Jstatd和JMX远程监控配置(转载)

    一.Jstatd远程监控服务器配置 jstat可以实时显示本地或远程JVM进程中类装载.内存.垃圾收集.JIT编译等数据.如果要显示远程JVM信息,需要远程主机开启RMI支持,详情如下: 1. 在JA ...

  2. Java_jvisualvm使用JMX连接远程机器(实践)

    https://my.oschina.net/heroShane/blog/196227 一.启动普通的jar程序 1.执行foo.jar启动命令 java -Dcom.sun.management. ...

  3. jvisualvm_使用jmx连接远程linux应用

    [前提] JVisualVM是由Sun提供的性能分析工具,在Jdk6.0以后的版本中是自带的,如果是用Jdk1.5或以前版本的就得要单独安装了. [1]远程机器需要开启jmx 在使用jvisualvm ...

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

    背景:  编写了一个MapReduce程序,发现该程序内存占用非常多,需要有一种方法来分析内存详细的占用情况. 可以使用linux上的pmap –d <PID>来看进程逻辑地址空间使用情况 ...

  5. 使用Java VisualVM监控远程JVM

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

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

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

  7. Java VisualVM监控远程JVM

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

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

    问题背景   Tomcat经常崩溃crash,想看看JVM内存使用情况,就想到了用Jconsole监控,以前只是监控本地的JVM,这次要监控远程的,遇到了不少问题.   经过几个小时的努力,参考了众多 ...

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

    问题背景   Tomcat经常崩溃crash,想看看JVM内存使用情况,就想到了用Jconsole监控,以前只是监控本地的JVM,这次要监控远程的,遇到了不少问题.   经过几个小时的努力,参考了众多 ...

随机推荐

  1. 英文汉语切换的导航栏,纯css制作。

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  2. [BZOJ1087] [SCOI2005] 互不侵犯King (状压dp)

    Description 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子. Input 只有一行,包 ...

  3. [BZOJ1430] 小猴打架 (prufer编码)

    Description 一开始森林里面有N只互不相识的小猴子,它们经常打架,但打架的双方都必须不是好朋友.每次打完架后,打架的双方以及它们的好朋友就会互相认识,成为好朋友.经过N-1次打架之后,整个森 ...

  4. C#利用substring按指定长度分割字符串

    这几天学习分析声音的波形数据,接收到的是十六进制的数据,需要将数据转换成十进制再绘图,这个过程涉及到字符串的分割,正好可以促进自己对C#相关知识的学习.说到分割字符串,我首先想到的是Split,但根据 ...

  5. HiveQL DML 常用QL示例资料

    hive 2.1.1  DML操作 将文件加载到hive表 //官方指导 LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tabl ...

  6. CodeFirst之深入了解EntityFramework

    一.概要 本文在基于CodeFirst思想之上 深入了解EntityFramework.其实我个人一直头疼的问题就是每次Entity类一有变动,无论是新增表,更改表结构等 EF一律把数据库删掉重建,这 ...

  7. Delphi子窗体随主窗体大小而变化

    当然办法有很多种,我建议用TRzsplitter更好点, TRzsplitter分割,在其上边放置panel,然后把align置为alClient,则可以随着主窗体的大小而一起变动 选中此控件右键ed ...

  8. HTTP架构介绍(1) Web服务器和代理服务器

    HTTP应用协议本身是不能运行的,它需是需要架构在硬件和软件解决方案上,才能在万维网上提供高效的传输服务. 在这系列的文章中,我们将会了解到以下概念: Web服务器 代理服务器 缓存 网关.信道和中继 ...

  9. SLIC superpixel算法

    标题 SLIC superpixel算法 作者 YangZheng 联系方式 263693992 SLIC算法是simple linear iterative cluster的简称,该算法用来生成超像 ...

  10. Lego-美团点评接口自动化测试实践

    Lego-美团点评接口自动化测试实践 2018-02-07 转自:Lego-美团点评接口自动化测试实践 目录 一.概述  1.1 接口自动化概述  1.2 提高ROI    针对“减少投入成本”    ...