visualvm远程jvm_VisualVM:通过SSH监视远程JVM(是否为JMX)

visualvm远程jvm

VisualVM是用于监视JVM(5.0+)的有关内存使用,线程,GC,MBeans等的出色工具。让我们看看如何通过SSH使用它来监视(甚至使用JMX进行配置)使用JMX或不使用JMX的远程JVM。它。 这篇文章基于在Ubuntu 10和VisualVM 1.3.3上运行的Sun JVM 1.6。

1.交流:JStatD与JMX

VisualVM和JVM之间有两种通信方式:通过Java Management Extensions (JMX)协议或通过jstatd 。

stat

jstatd是与JDK一起分发的守护程序。 在目标计算机上从命令行启动它(可能需要以运行目标JVM的用户身份或以root用户身份运行它),VisualVM会与它联系以获取有关远程JVM的信息。

  • 优点:可以连接到正在运行的JVM,无需使用特殊参数启动它
  • 缺点:监控功能有限得多(例如,没有CPU使用情况监控,无法运行Sampler和/或进行线程转储)。

例如:

bash> cat jstatd.all.policy
grant codebase 'file:${java.home}/../lib/tools.jar' {
permission java.security.AllPermission;
}
bash> sudo /path/to/JDK/bin/jstatd -J-Djava.security.policy=jstatd.all.policy
# You can specify port with -p number and get more info with -J-Djava.rmi.server.logCalls=true

注意:如果仅复制但未安装JDK,则将“ $ {java.home} /../ lib / tools.jar”替换为绝对的“ /path/to/jdk/lib/tools.jar”。

如果失败了

Could not create remote object
access denied (java.util.PropertyPermission java.rmi.server.ignoreSubClasses write)
java.security.AccessControlException: access denied (java.util.PropertyPermission java.rmi.server.ignoreSubClasses write)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:374)

那么jstatd可能没有使用正确的java.security.policy文件启动(尝试提供其完全限定的路径)。

有关来自Oracle的VisualVM和jstatd的更多信息 。

JMX

  • 优点:使用JMX将为您提供VisualVM的全部功能。
  • 缺点:需要使用某些系统属性启动JVM。

启动目标JVM时,通常将需要使用以下属性(尽管您也可以启用SSL和/或要求用户名和密码):

yourJavaCommand... -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=1098

请参阅远程JMX连接 。

2.安全性:SSH

通过ssh连接到远程JMX或jstatd的最简单方法是使用SOCKS代理 ,它可以设置标准ssh客户端。

2.1使用SOCKS设置SSH隧道

ssh -v -D 9696 my_server.example.com

2.2配置VisualVM以使用代理

工具->选项->网络–手动代理设置–检查它并在本地主机和端口9696上配置SOCKS代理

2.3将VisualVM连接到目标

文件->添加远程主机…–输入远程计算机的IP或主机名JStatD连接

您应该在ssh窗口中都看到日志(由于其“ -v”, 例如:debug1:端口9696的连接转发到请求的socks端口0。 ”和“ debug1:通道3:免费:direct-tcpip:监听10.696.77端口1099的端口9696,从127.0.0.1端口61262,nchannels 6连接,并在启动jstatd的控制台中连接(很多,例如“ FINER:RMI TCP Connection(23)-10.2.47.71 :… “)

添加远程主机后,请等待几分钟,然后您将看到JVM在其中运行。

可用的统计信息:JVM参数,监视器:堆,类,线程监视(但不包括CPU)。 采样器和MBean需要JMX。

JMX

右键单击已添加的远程主机,然后选择“添加JMX连接...”,键入您选择的JMX端口。

您应该看到与jstatd类似的日志。

可用的统计信息:CPU使用率,系统属性,详细的线程报告以及对堆栈跟踪的访问,CPU采样(不支持内存采样)。

注意:采样器与分析器

VisualVM的采样器不包括花费在Object.wait和Thread.sleep中的时间(例如,等待I / O)。 如果您希望获得更多控制权或希望包括Object.wait和Thread.sleep时间,请使用NetBeans Profiler来对远程应用程序进行概要分析或采样。 它要求其Remote Pack(Java代理,即JAR文件)位于目标JVM中(NetBeans的附加向导可以在步骤4(手动集成)中为您生成远程包,并向您展示传递给目标的选项使用JVM)。

您可以通过以下方式通过SSH运行探查器:转发其默认端口 (5140),并将其附加到本地主机上的转发端口。(NetBeans版本7.1.1。)

别忘了分享!

参考: VisualVM: The Holy Java博客上来自JCG合作伙伴 Jakub Holy的通过SSH监视远程JVM(无论是否为JMX) 。


翻译自: https://www.javacodegeeks.com/2012/09/visualvm-monitoring-remote-jvm-over-ssh.html

visualvm远程jvm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352865.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何切换pip的源

参考别人的帖子https://blog.csdn.net/chenghuikai/article/details/55258957 转载于:https://www.cnblogs.com/PoeticalJustice/p/9609659.html

shp文件的读取

转载自:http://blog.csdn.net/gisfarmer/article/details/3861554做GIS开发的朋友可能对shp并不陌生,但是看到CSDN网友不断提问关于shp文件的一些问题,利用闲暇我对shp文件的一些知识加以总结,共享CSDN网友。首先了解一下shp文件的…

Java 8:CompletableFuture与并行流

这篇文章展示了Java 8的CompletableFuture在执行异步计算时如何与并行流进行比较。 我们将使用以下类对长时间运行的任务进行建模: class MyTask {private final int duration;public MyTask(int duration) {this.duration duration;}public int calculate() {Sy…

linux使用gpio开一个线程,LINUX的gpio_request_one作用

一直习惯使用gpio_request来申请一个GPIO,然后用gpio_direction_input、gpio_direction_output等函数来配置对应的GPIO,用gpio_free来释放申请。后来看到别人也会用gpio_request_one来申请和配置一个GPIO,然后就去看看看这个接口的实现&#…

Python制作回合制手游外挂简单教程(下)

引入: 接着上篇的博文,今天我们讲如何实现助人为乐 前期准备: 如何获取图片中指定文字的坐标? 我的思路是截取一个小区域,再根据小区域左上角的坐标获取中央坐标 例如: 获取坐上角的x和y坐标,测…

XSHELL下直接下载文件到本地(Windows)

转载自:http://www.cnblogs.com/davytitan/p/3966606.html xshell很好用,然后有时候想在windows和linux上传或下载某个文件,其实有个很简单的方法就是rz,sz 首先你的Ubuntu需要安装rz.sz(如果没有安装请执行以下命令,安装完的请跳过.其它版本linux请自行安装相应软…

linux操作系统2试题,RedHat Linux 9.0 操作系统测试题2

一、填空题(每空1分,共14分)1.任何Linux系统都至少需要两类分区:根分区和交换分区。2.CD-ROM标准的文件系统是iso9660。3.使用vi编辑器可以创建文本文件,在输入文件内容之前需要先按INSERT键进入插入模式,在保存之前需下先使用ESC…

HazelCast的Spring-Boot和Cache抽象

以前,我们是使用spring提供的默认Cache Manager来开始Spring Cache抽象的。 尽管这种方法可能适合我们对简单应用程序的需求,但是在出现复杂问题的情况下,我们需要使用具有更多功能的其他工具。 Hazelcast就是其中之一。 当涉及到基于JVM的应…

Ubuntu18.04 安装搜狗输入法后无法启动的问题

ibus 改选成fcitx后搜狗输入法照样没出来。 这里需要im-config 没有的话需要安装: sudo apt install im-config 然后在Terminal中执行 im-config 根据提示选择fcitx转载于:https://www.cnblogs.com/feipeng8848/p/9609877.html

linux华为路由器模拟器,华为路由器模拟器与实验内容.doc

华为路由器模拟器与实验内容华为的路由器模拟器及实验内容??2009-12-21 20:27:53|??分类: HYPERLINK "/ah..zhangrui/blog/" \l "m0&t1&cfks_080074086080086074092094074070087095083070092086084" \o "默认分类" 默认分…

_WIN32_WCE有什么用

转载自:http://blog.csdn.net/thanklife/article/details/21477561 _WIN32_WCE有什么用,我这里找了一些人的回应。由于目前我手头的源码有限,还没有找到定义之处。先这样保留着这个问题吧。以下是一些别人给的认识。 经常看到 #ifndef _WIN32_WCE 这是什…

zk ui_高级ZK:异步UI更新和后台处理–第1部分

zk ui异步UI更新非常有用,因为它们通常可以提高响应性,可用性和用户界面的总体感觉。 我将在这里重点介绍ZK框架,但是通常,相同的原理也适用于桌面UI(Swing,SWT)。 长时间运行的处理 有时您可能…

BZOJ 3223: Tyvj 1729 文艺平衡树-Splay树(区间翻转)模板题

3223: Tyvj 1729 文艺平衡树 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 6881 Solved: 4213[Submit][Status][Discuss]Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作&#…

在Spring中了解事务注释

1.简介 Spring为程序性和声明性事务提供支持。 1.1程序化交易 对于程序性事务,需要显式编写事务管理代码,以便在一切成功后提交,并在出现问题时回滚。 在这种情况下,事务管理代码与业务逻辑紧密绑定。 1.2声明式交易 声明式事…

GIS开源库shapeLib的使用方法

转自:http://www.cnblogs.com/liongis/archive/2012/10/23/2736015.html 近期研究了一下GIS开源库shapeLib读写ArcGIS数据的API函数,先整理一下,将各个API的用法介绍一下。 分为两个模块,shape API和DBF API,前者的读取…

linux 升级 iphone,Linux 5.13 更新有望增加对苹果 M1 处理器的支持

IT之家 4 月 10 日消息 预计 Linux 5.13 将初步支持苹果 Silicon M1 处理器,不过可能还需要几年时间才能完全支持。虽然已经在苹果 Silicon M1 上运行,但这是通过一系列的补丁,单纯是为了 Linux 能够在 M1 设备上启动而已,而现在 …

201771010118马昕璐

第一部分 理论知识的学习 第三章Java基本程序设计结构 1 基本知识: (1)标识符:标识符由字母、下划线、美元符号和数字组成,且第一个符号不能为数字。Hello、$1234、程序名、www_123都是合法标识符。 标识符可用作类名…

Xshell显示中文乱码问题

转载自:http://www.blogjava.net/RoyPayne/archive/2011/12/21/366899.htmlXshell对于嵌入式开发来说,是个非常不错的工具。但或许都有过被中文显示为乱码的问题感觉有点不爽。解决方法其实很简单的,即把xshell编码方式改成UTF-8即可。 [文…

apache wicket_Apache Wicket:记住我的功能

apache wicket在Web应用程序中,很常见的是具有“记住我”功能,该功能使用户每次访问我们的网站时都能自动登录。 可以使用Spring Security来实现这种功能,但我认为将基于请求的身份验证框架与基于组件的Web框架一起使用并不是最好的主意。 这…

linux pap认证,配置PPP PAP 认证

配置PPP PAP 认证:1. 单向认证:R1启动pap R1为主验证方,R2为被验证方。r1(config)#inter s1/0r1(config-if)#ip add 202.146.0.1 255.255.255.0r1(config-if)#no shutdownr1(config-if)#encapsulation pppr1(config-if)#ppp authenticatin pa…