zoukankan      html  css  js  c++  java
  • Jstatd方式远程监控Linux下 JVM运行情况

    前言

    最近一个项目部署在服务器上运行时出现了问题,经过排查发现是java内存溢出的问题,所以为了实时监控服务器java内存的情况,需要远程查看服务器上JVM内存的一些情况。另外服务器系统是CentOS 7 最小安装,没有图形化界面,不能采用vnc远程。所以只能通过VisualVM或者JConsole来远程JVM。


    环境介绍


    1. 服务器:CentOS 7(最小安装) ip:192.168.22.249(示例) jdk:1.8 
    2. 客户端:Windows jdk:1.8


    介绍两个jdk1.8自带的可视化监视工具

    Jconsole:

    Java 6.x采用JMX方式提供了一系列监视和管理虚拟机的API,随SDK一起发布的JConsole则是采用这些API实现监控虚拟机的使用工具。 JConsole能够提供被监控虚拟机的内存、线程、类的加载以及MBean等信息,从而能够对服务器的运行情况进行实时监控。 

    JVisualVM:

    是Netbeans的profile子项目,已在JDK6.0 update 7 中自带(java启动时不需要特定参数,监控工具在bin/jvisualvm.exe),能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的)。

    VisualVM和JConsole在监控本地JVM的时候是很方便的。只要应用程序运行起来,我们就可以连接上本地JVM,从VisualVM里面监控JVM的情况。

    远程服务器上的JVM监控就需要一些额外的配置。目前VisualVM支持两种监控方法:Jstatd方法和基于JMX的方法。


    这篇博客我们先介绍Jstatd方法

    jstatd是一个rmi的server应用,用于监控jvm的创建和结束,并且提供接口让监控工具可以远程连接到本机的jvm 。jstatd位于 $JAVA_HOME/bin目录下,具体使用方法如下: 

    1,启动RMI服务

    在需要被监控的服务器上面,通过jstatd来启动RMI服务 
    首先,配置java安全访问,在服务器jdk路径(/java_home/bin)下新建文件 
    名称: jstatd.all.policy 
    内容:

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

    然后在进入jstatd.all.policy所在目录下,通过如下的命令启动RMI服务:

    ./jstatd -J-Djava.security.policy=jstatd.all.policy 

    或者

    ./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.22.249
    这里写图片描述
     

    2.启动客户端的VisualVM,添加远程主机 

    这里写图片描述

    VisualVM 在/java_home/bin目录下

    连接后会自动加载出服务器JVM运行情况。

    这里写图片描述 


    这里写图片描述
    图片分享:

    在Jstatd监控方式下,JConsole是不能启用的,因为JConsole登录需要端口号。


    另外我们还可以为VisualVM安装一些插件,比如GC,MBeans等等。满足自己的需要。下一篇博客讲解以JVM方式实现远程监控。

  • 相关阅读:
    Study Plan The Twelfth Day
    Study Plan The Fifteenth Day
    Study Plan The Seventeenth Day
    Study Plan The Tenth Day
    Study Plan The Eighth Day
    Study Plan The Eleventh Day
    Study Plan The Sixteenth Day
    Study Plan The Thirteenth Day
    Study Plan The Fourteenth Day
    Study Plan The Ninth Day
  • 原文地址:https://www.cnblogs.com/catkins/p/5970364.html
Copyright © 2011-2022 走看看