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方式实现远程监控。

  • 相关阅读:
    设计模式 --单例模式
    Neor Profile SQL 中文汉化
    office online server 安装部署整合到到C#项目
    C# 线程池
    WinForm版 屏幕截图
    golang-nsq高性能消息队列
    【Go Time】Go语言里的条件语句else、switch
    【Go Time】Go语言常量定义关键字const
    【Go Time】Go定义变量
    【Go Time】Go语言里的空接口
  • 原文地址:https://www.cnblogs.com/catkins/p/5970364.html
Copyright © 2011-2022 走看看