jvisualvm监控远程jvm

article/2025/10/13 18:09:53

方式一:JMX

1、服务端添加配置
tomcat/bin/catalina.sh文件中添加如下配置:

export JAVA_OPTS="-Xms256m -Xmx512m -Xss256m -XX:PermSize=512m -XX:MaxPermSize=1024m -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.16.239 -Dcom.sun.management.jmxremote.port=9015 -Dcom.sun.management.jmxremote.rmi.port=9015 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

详解:
要使用jmx远程监控功能,在远程java application启动时,必须通过jvm选项配置提供远程服务的端口:
-Dcom.sun.management.jmxremote.port=9015

一般同时指定为本地jmx client提供服务的端口与远程服务端口相同:
-Dcom.sun.management.jmxremote.rmi.port=9015

jmx远程服务默认是开启ssl和认证功能功能的,也可以通过jvm选项把这两个功能关闭:
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

还可以设置虚拟机参数:
-Xms256m -Xmx512m -Xss256m -XX:PermSize=512m -XX:MaxPermSize=1024m

jmx默认是通过localhost的ip地址提供RMI服务的,如果要明确指定RMI服务地址或主机名(比如主机有多个接口,想使用非hostname关联的接口),可以通过以下选项显式指定:
-Djava.rmi.server.hostname=服务器IP

这样开启jmx远程监控功能的最小配置具体如下:

-Xms256m 
-Xmx512m 
-Xss256m 
-XX:PermSize=512m 
-XX:MaxPermSize=1024m 
-Dcom.sun.management.jmxremote 
-Djava.rmi.server.hostname=服务器IP 
-Dcom.sun.management.jmxremote.port=9015 
-Dcom.sun.management.jmxremote.rmi.port=9015 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false 

2. 重启tomcat
java application启动后,远程监控工具就可以通过<远程主机名或ip地址>:8777,或jmx服务地址service:jmx:rmi:///jndi/rmi://<远程主机名或ip地址>:8777/jmxrmi连接远程java application进行监控了
3. 客户端操作
3.1 启动jvisualvm.exe
找到jdk安装目录进入bin目录下, 双击 jvisualvm.exe
在这里插入图片描述
3.2 配置JMX
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

方式二:JSTATD

1、创建 XXX.policy文件
jdk 1.8发布包中包括一个jstatd程序,使用jstatd需要指定一个policy文件,文件的后缀为 .policy,
比如:jstatd-all.policy的文件,
内容为:

grant codebase "file:/usr/java/jdk1.8.0_212/lib/tools.jar" {permission java.security.AllPermission;
};

或者

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

2、启动

./jstatd -J-Djava.security.policy=jstatd-all.policy &
或者指定端口
./jstatd -J-Djava.security.policy=jstatd-all.policy -p 9016 &

在这里插入图片描述

3. 客户端操作
3.1 启动jvisualvm.exe
找到jdk安装目录进入bin目录下, 双击 jvisualvm.exe
在这里插入图片描述
3.2 配置JMX
在这里插入图片描述
3.3 连接jstatd
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、区别和利弊

1、 jmx是jvm自身提供的一个标准的jmx管理功能,client支持度非常好,jvm监控工具基本上都会支持这种连接方式。而且只要配置几个简单的选项就可以使用了,不需要单独启动一个第三方的只用来监控连接的应用程序
2、jstatd是jdk提供的一个单独的工具,一个主机只需要运行一个jstatd就可以监控主机上所有的java application,而因为jmx是集成在jvm中,如果主机上有多个java应用程序需要监控,需要每个java应用程序配置相应的jmx选项,而且远程服务端口不能相同,client监控时也需要与每个java应用程序建立单独的连接
3、java应用程序启动时如果没有配置相应的jmx选项,则在运行周期内都无法远程监控应用程序,这可能会丧失定位问题的机会。而jstatd需要监控时,可以随时运行并进行监控在jvisualvm中,只有通过jstatd连接才能使用visualGC插件功能
4、jstatd server的端口是随机选择的,在有些情况下可能无法使用。比如我司的办公区域与生产区域之间网络设置了防火墙,只允许某个范围的端口通过,这是公司级的,某个团队无法修改防火墙策略。同时办公区域也不能直接ssh访问生产区域服务器,必须经过一个relay,也不能使用jstatd over ssh的方式。个人觉得jstatd不能在启动时显示指定服务的端口是它的一个槽点
5、jstatd不支持cpu监控


http://chatgpt.dhexx.cn/article/mIbcx5j4.shtml

相关文章

jvisualvm插件安装

jvisualvm插件安装 jvisualvm是我们查看JVM内部结构和JVM调优的重要工具&#xff0c;在java的安装目录的bin目录下。我们安装的Java默认jvisualvm有很多插件是没有安装的。接下来我们来看一下jvisualvm的插件安装。 找到JDK版本对应的插件地址&#xff1a; 访问网址&#xff1a…

JVM调优之JConsole和JVisualVM工具使用

JVM调优过程中&#xff0c;常用JDK自带的两个工具JConsole和JVisualVM&#xff0c;有助于分析问题。下面是两个工具的使用方式。&#xff08;我发现好多小伙伴居然都不知道这么强大的工具&#xff09; 一、JConsole使用。 1、JConsole本地监控启动 首先在JDK的bin目录下&#…

JVisualVM安装Visual GC

1、手动下载 下载地址 VisualVM: Plugins Centers 我现在常用JDK8&#xff0c;我的版本号是91 所以打开网址&#xff0c;选择如下&#x1f447; 选择对应的版本号之后&#xff0c;点击下面那个链接&#xff0c;之后会跳转到一个网页&#xff0c;找到Visual GC&#xff0c;点…

使用jvisualvm远程监控服务器上的jvm

转载文章&#xff1a;原文地址 在测试环境复现出了的研发自测没有发现的疑难问题如性能问题&#xff0c;排除服务器本身的问题之后&#xff0c;研发就需要定位问题。 我们可以直接远程监控测试环境的jvm查看监控进程的运行情况么&#xff1f; 我们可以直接远程dump测试环境的运…

Java jvisualvm简要说明

jvisualvm能干什么&#xff1a;监控内存泄露&#xff0c;跟踪垃圾回收&#xff0c;执行时内存、cpu分析&#xff0c;线程分析... jvisualvm已经被集成在jdk1.6以上的版本中(不是jre)。自身运行需要最低jdk1.6版本&#xff0c;但是可以监控运行在jdk1.4以上版本的java程序 以jd…

Java问题诊断工具——JVisualVM

这篇文章源自一次加班改bug的惨痛经历[,,_,,]:3 负责的一个项目占用不断增加&#xff0c;差点搞崩服务器(╥﹏╥)…… 一下子有点懵&#xff0c;不能立刻确定是哪里导致的问题&#xff0c;所以决定好好研究下这个之前一直被我忽视的问题诊断工具&#x1f527;——JVisualVM 嘿嘿…

JVisualVM的使用教程

一、前言 JVisualVM是一个Java虚拟机的监控工具&#xff0c;要是需要对JVM的性能进行监控可以使用这个工具哦 使用这个工具&#xff0c;你就可以监控到java虚拟机的gc过程了 那么&#xff0c;这么强大的工具怎么下载呢&#xff1f; 在JDK1.6后的版本是自带这个工具&#xf…

JVisualVM的使用实录

一、前言 JVisualVM是一个Java虚拟机的监控工具&#xff0c;要是需要对JVM的性能进行监控可以使用这个工具哦 使用这个工具&#xff0c;你就可以监控到java虚拟机的gc过程了 那么&#xff0c;这么强大的工具怎么下载呢&#xff1f; 在JDK1.6后的版本是自带这个工具&#xf…

jvisualvm的使用

jvisualvm的使用 VisuaIVM(All-in-One Java Troubleshooting Tool)是一款免费的&#xff0c;集成了多个 JDK 命令行工具的可视化工具&#xff0c;它提供强大的分析能力&#xff0c;对 Java 应用程序做性能分析和调优。这些功能包括生成和分析海量数据、跟踪内存泄漏、监控垃圾…

JVisualVM初步使用

JVisualVM初步使用 1、前言 jvm调优工具有常见的为Jconsole&#xff0c;jProfile&#xff0c;VisualVM&#xff0c; Jconsole: 为jdk自带&#xff0c;功能简单&#xff0c;但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。JProfiler&#xff1a;商业软…

JVisualVM 简介

VisualVM 是Netbeans的profile子项目&#xff0c;已在JDK6.0 update 7 中自带&#xff0c;能够监控线程&#xff0c;内存情况&#xff0c;查看方法的CPU时间和内存中的对 象&#xff0c;已被GC的对象&#xff0c;反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来…

VisualVM

VisualVM VisualVM基本认识 官网http://visualvm.github.io/ **VisualVM 是一个工具&#xff0c;它提供了一个可视界面&#xff0c;用于查看 Java 虚拟机 (Java Virtual Machine, JVM) 上运行的基于 Java 技术的应用程序&#xff08;Java 应用程序&#xff09;的详细信息。**…

JAVA性能分析工具--Jvisualvm使用方法

JDK自带的JAVA性能分析工具。它已经在你的JDK bin目录里了&#xff0c;只要你使用的是JDK1.6 Update7之后的版本。点击一下jvisualvm.exe图标它就可以运行了。 这里是VisualVM 的官方网站&#xff1a;https://visualvm.dev.java.net&#xff0c;资料很全&#xff0c;同时提供V…

jvisualvm使用

一、jvisualvm安装 1、Java版本在1.8及1.8版本以下&#xff0c;JDK已经自带这个工具 2、Java版本在1.8的&#xff0c;需要安装visualvm https://visualvm.github.io/download.html 对于自行安装的版本,运行前需要配置一下路径 进入visualvm的etc的目录,修改visualvm.conf文件…

生成特定架构内核cscope数据库

tags代码浏览工具 tags工具介绍 一般来说&#xff0c;如果我们想要研究一个c/c项目的源码&#xff0c;我们首先要做的是为该项目生成tags文件&#xff0c;tags文件种类有很多&#xff0c;比如 ctags、etags、cscope、gtags 等&#xff0c;有关他们的区别可以参考下面链接里的…

Emacs+cscope手动创建索引(感受cscope的强大)(八十三)

1.cscope 创建索引 <1>.创建索引文件列表cscope.files # find . ! -path "./out/*" ! -path "./prebuilts/*" ! -path "./frameworks/*" -name "*.h" -o -name "*.c" -o -name "*.cc" -o -name "*.cp…

vim cscope java_【转】Cscope的使用(领略Vim + Cscope的强大魅力)

【转】Cscope的使用(领略Vim Cscope的强大魅力) 1、Cscope介绍 Cscope是类似于ctags一样的工具&#xff0c;但可以认为她是ctags的增强版&#xff0c;因为她比ctags能够做更多的事。在Vim中&#xff0c;通过cscope的查 询&#xff0c;跳转到指定的地方就像跳转到任何标签&…

Vim/Cscope使用

&#xff1a;cs find s ---- 查找C语言符号&#xff0c;即查找函数名、宏、枚举值等出现的地方 &#xff1a;cs find g ---- 查找函数、宏、枚举等定义的位置&#xff0c;类似ctags所提供的功能 &#xff1a;cs find d ---- 查找本函数调用的函数 &#xff1a;cs find c ---- 查…

Cscope的使用

首先在目录下建立cscope索引文件 find -name *.c > cscope.file cscope -Rbkq 这个命令会生成三个文件&#xff1a;cscope.out, cscope.in.out, cscope.po.out。 其中cscope.out是基本的符号索引&#xff0c;后两个文件是使用"-q"选项生成的&#xff0c;可以加快c…

Cscope的使用(领略Vim + Cscope的强大魅力)

http://blog.csdn.net/dengxiayehu/article/details/6330200 1、Cscope介绍 Cscope是类似于ctags一样的工具&#xff0c;但可以认为她是ctags的增强版&#xff0c;因为她比ctags能够做更多的事。在Vim中&#xff0c;通过cscope的查询&#xff0c;跳转到指定的地方就像跳转到任…