zoukankan      html  css  js  c++  java
  • Java虚拟机性能管理神器

     

    Java虚拟机性能管理神器 - VisualVM(5) 监控远程主机上的JAVA应用程序【转】

    标签: javajvm监控工具性能优化
     分类:
     

    目录(?)[+]

     

    Java虚拟机性能管理神器 - VisualVM(5)  监控远程主机上的JAVA应用程序

        使用VisualVM监控远程主机上JAVA应用程序时,需要开启远程主机上的远程监控访问,或者在远程JAVA应用程序启动时,开启远程监控选项,两种方法,选择其中一种就可以开启远程监控功能,配置完成后就可以在本地对远程主机上的JAVA应用程序进行监控。

    1.远程服务器、应用程序配置

            1.1配合jstatd工具提供监控数据  

            1.1.1创建安全访问文件

            在JAVA_HOME/bin目录中,创建名称为jstatdAllPolicy文件(这个文件名称也可以顺便起,不过要与jstatd启动时指定名称相同),将以下内容拷贝到文件中。并保证文件的权限和用户都正确。

            grant codebase"file:${java.home}/../lib/tools.jar"{ permission java.security.AllPermission; };

    1.1.2启动jstatd服务

            在JAVA_HOME/bin目录中,执行以下命令:

             ./jstatd -J-Djava.security.policy=jstatdAllPolicy-p 1099 -J-Djava.rmi.server.hostname=192.168.xxx.xxx

            jstatd命令描述以及参数说明:

               jstatd是一个基于RMI(Remove Method Invocation)的服务程序,它用于监控基于HotSpot的JVM中资源的创建及销毁,并且提供了一个远程接口允许远程的监控工具连接到本地的JVM执行命令。

            -J-Djava.security.policy=jstatdAllPolicy 指定安全策略文件名称

             -p 1099  指定启动端口

             -J-Djava.rmi.server.hostname=192.168.xxx.xxx  指定本机IP地址,在hosts文件配置不正常时使用,最好加上。


    1.2JVM启动时配置远程监控选项

            在需要远程监控的JVM启动时,开启远程监控选项

            -Dcom.sun.management.jmxremote.port=1099
            -Dcom.sun.management.jmxremote.ssl=false
            -Dcom.sun.management.jmxremote.authenticate=false
            -Djava.rmi.server.hostname=192.168.xxx.xxx

    2.本地VisualVM配置

            在本地VisualVM的应用程序窗口,右键单击【远程】》【添加远程主机】》【主机名】中输入远程主机的IP地址,点击【高级设置】输入远程主机开启的监控端口,点击【确定】完成配置。

            如果一切正常,就可以看到远程主机上的JAVA应用程序了。

    3.常见问题

    3.1jstatd启动异常

            启动jstatd时报错,主要原因应该是没有配置安全管理文件或者安全管理文件内容错误,另外就是因为启动的时候没有指定本机IP地址或者端口。

    3.2正常启动jstatd后,本地VisualVM配置远程主机无法显示监控信息

    3.2.1防火墙

            一般情况下是使用以下命令关闭防火墙

    [plain] view plain copy
     
     print?
    1. [test@master bin]#  service iptables stop  
    2. 清除防火墙规则:                                           [确定]  
    3. 把 chains 设置为 ACCEPT 策略:filter                       [确定]  
    4. 正在卸载 Iiptables 模块:                                  [确定]  
    5. [test@master bin]#  service iptables status  
    6. 防火墙已停  
    7. [test@master bin]#   

    3.2.2JDK版本不一致

        如果使用本机JAVA安装包的的JVisualVM来监控远程应用程序,JDK远程主机的版本和本地JDK版本差别较大就会出现类似问题。需要统一版本,或者下载VisualVM来监控。

    3.2.3IP地址或者端口配置错误

        通过确定远程主机的IP地址或者端口来解决。

  • 相关阅读:
    Json概述以及python对json的相关操作
    tcpdump学习(2):基本使用
    tcpdump学习(1):安装
    mysql的expain(zz)
    ubuntu下使用mysql的一点笔记
    mysql的mysqladmin的用法
    mysql的一些工具(系统自带)
    django 分页django-pure-pagination(zz)
    mysql之any,some all(zz)
    Docker Ubuntu容器安装ping(zz)
  • 原文地址:https://www.cnblogs.com/abcd19880817/p/7194811.html
Copyright © 2011-2022 走看看