Visualvm监控远程机器上的Java程序
JDK里面本身就带了很多的监控工具,如JConsole等。我们今天要讲的这款工具visualvm,就是其中的一款。但是这款工具是在JDK1.6.07及以上才有的。它能够对JAVA程序的JVM堆、线程、类加载情况、JVM GC情况进行监控,是一个很好的免费的监控工具。
监控范围:JDK1.4及以上版本的程序都能够监控。
它在JDK里面叫做: jvisualvm,当然我们可以到它的官方网站上去下载它的最新版本,当前最新版本是:
1.3.2,如下所示:
在图中已经列出了它的官方网站地址:
http://visualvm.java.net
首先,打开visualvm,它会自动检索到本地机器上java应用程序,如下图:
双击它就可对它开始进行各项数据的监控了。
但是监控远程机器上的Java应用程序就没有这么简单了,需要进行相应的配置,首先我们来看下visualvm监控远程机器上Java应用程序的原理:
由上图可知,visualvm必须通过jstatd服务来取得远程机器上Java应用程序的运行数据。
所以我们得先在要监控的机器上启动jstatd服务(这个服务是在远程机器上启动的)
1、 首先在远程机器上配置好Java环境:
JAVA_HOME,CLASSPATH,PATH
配置完之后,在cmd里面通过:java -version和javac -version,确定Java环境配置完成
2、 创建一个文件:jstatd.all.policy(名字可以变,扩展名不可以变),内容如下:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
这个文件的作用是让jstatd服务能够读取机器上的java应用程序的运行数据
3、 把这个文件放到:%JAVA_HOME%\bin目录下。
4、 打开cmd,把目录切到:%JAVA_HOME%\bin目录下,然后执行如下命令:
jstatd -J-Djava.security.policy=jstatd.all.policy
这个时候,如果cmd是如下所示的状态,则说明jstatd服务启动成功
注:上面启动的jstatd服务,默认端口是1099,也可以在上面命令中指定端口号
按照上面的原理图,在远程机子上启动jstatd服务之后,visualvm就可以监控到远程机器上的JAVA应用程序了,按下面操作即可:
1、 在本地visualvm界面上添加远程主机:
在左边“应用程序”中,右击“远程”,选择“添加远程主机”
然后在弹出的对话框里面输入所要监控的远程主机的IP,如下所示:
刚开始进入时,不是这个对话框,点击“高级设置”就会展开余下的部分,就是上面所示的对话框,在里面可以设置远程机器上jstatd服务所用的端口号,默认是1099,可以通过勾选“显示名称”,在里面输入自己想要的远程主机名,最后点击确定即可。
2、 展开刚所新建的远程主机,就可看到运行在远程机器上的JAVA应用程序了,如下所示:
通过双击里面的应用程序,就可以像本地应用程序一样,对它进行监控了。
到此,visualvm远程监控部分算是完成了。
最后需要注意的一点是,jdk6上的visualvm不能够监控到jdk7上的java应用程序,即使jstatd服务成功启动也不行。
Visualvm监控远程机器上的Java程序相关推荐
- 使用Java VisualVM监控远程JVM
2019独角兽企业重金招聘Python工程师标准>>> 我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少, 目前有多个监控工具, 相比JProfiler ...
- java vm 远程监控配置文件_Java VisualVM监控远程JVM(详解)
我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少, 目前有多个监控工具, 相比JProfiler对系统资源尤其是内存的消耗是非常庞大,JDK1.6开始自带的VisualV ...
- 开发机器上利用vs2013调试远程IIS上的c#程序
当远程IIS上的C#程序出现问题,怎么排错,一般我们通过看日志排查错误的方法,这种方法在程序异常日志都打印出来的情况下是可以解决的,但如果程序日志不详细,或者从日志看不出有用的内容的时候怎么排错? 本 ...
- 【PSTOOLS】PSEXEC 启动远程机器上的程序没有UI显示
c:\pstools\psexec \\172.168.0.9 -u username -p password -i 4 -d c:\abc.exe 上面的例子是调用远程机器上的abc.exe并且显 ...
- jenkins中通过Publish Over SSH将项目部署到远程机器上
Publish Over SSH插件使用 在使用Publish Over SSH之前,需要制作SSH私钥.机器间做免密登录配置.假设机器A,ip为192.168.AA.AAA,机器B: 192.168 ...
- Java学习 (二) 在MAC终端上运行Java程序
在MAC上终端上运行Java程序很简单. 首先你得确保Java环境配置正确. 1.在终端使用 cd 命令定位到你Java文件所在目录. 2.编译:输入指令如下 javac Test.java Test ...
- 此远程计算机不支持remoteapp,[Tips] 使用 RemoteApp 方式访问远程桌面上的应用程序...
使用 RemoteApp 方式访问远程桌面上的应用程序 补充这篇日志纯粹是为了方便自己,经验技巧当然是很早以前的!原因是最近经常要访问笔记本上的应用,但又不想基于远程桌面环境,所以直接以应用窗口模式打 ...
- java visualvm_使用Java VisualVM监控远程JVM
今天有同事说使用jvisualvm通过JMX方式连接到远程应用时,Visual GC插件提示"Not supported for this JVM",无法显示堆内存各区的使用情况. ...
- pat上写java程序_如何运行Java程序和设置CLASSPAT
导读: 如何运行JAVA和CLASSPATH环境变量的设置是学习和使用JAVA中最基本的问题,本不应在此赘述.但近来不少人在论坛上提出的问题却与此有关,我平时碰到的一些初学者也往往在这个问题上卡了壳, ...
最新文章
- 图像检索中为什么仍用BOW和LSH
- FileStream实现多线程断点续传(已封装)
- 15个C++项目列表
- Disturbed People(思维)
- JavaScriptSerializer类 对象序列化为JSON,JSON反序列化为对象
- C#制作WinForm控件
- java filehelper_Java常用工具类---IP工具类、File文件工具类
- ifconfig命令为centos linux系统配置临时的局域名IP、网关以及子网掩码
- html页面的盒子边框怎么做的,HTML+CSS入门 用三层盒子结构实现多边框详解
- node js 非阻塞io_Node Express JS:套接字IO模块示例
- JDK下Bin目录的工具介绍
- 粗浅看 Tomcat系统架构分析
- Android中使用Notifaction无反应
- 《统计学》第八版贾俊平第九章分类数据分析知识点总结及课后习题答案
- MATLAB如何导出高分辨率的模型图片、PDF
- 金彩教育:如何提升自然流量
- mysql根据各种条件统计_Mysql按条件计数多种实现方法解析
- 高校青年教师应该怎么提高收入
- vue之echarts世界地图七大州分布
- 小小Mac:Web移动端适配方案
热门文章
- 碳中和专题:碳足迹核算、碳中和顶刊论文、碳排放交易2022
- VASP中HF标准和HSE06的INCAR文件介绍
- 大学物理第三版朱峰课后答案详解_大学物理学习辅导(第3版)
- 你觉得惠普DV2000,DV3000该召回去重新设计散热系统吗? 中国人都来投一票
- XenDesktop 的核心组件
- 植物大战僵尸:分析植物的攻击速度
- 安全L1-网络基础知识-基础篇01
- ERROR 2002 (HY000) Can‘t connect to local MySQL server through socket ‘varrunmysqldmysqld.sock‘
- scala练习_李孟_新浪博客
- 前后端分离项目线上部署