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程序相关推荐

  1. 使用Java VisualVM监控远程JVM

    2019独角兽企业重金招聘Python工程师标准>>> 我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少, 目前有多个监控工具, 相比JProfiler ...

  2. java vm 远程监控配置文件_Java VisualVM监控远程JVM(详解)

    我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少, 目前有多个监控工具, 相比JProfiler对系统资源尤其是内存的消耗是非常庞大,JDK1.6开始自带的VisualV ...

  3. 开发机器上利用vs2013调试远程IIS上的c#程序

    当远程IIS上的C#程序出现问题,怎么排错,一般我们通过看日志排查错误的方法,这种方法在程序异常日志都打印出来的情况下是可以解决的,但如果程序日志不详细,或者从日志看不出有用的内容的时候怎么排错? 本 ...

  4. 【PSTOOLS】PSEXEC 启动远程机器上的程序没有UI显示

    c:\pstools\psexec \\172.168.0.9 -u username -p password -i 4  -d c:\abc.exe 上面的例子是调用远程机器上的abc.exe并且显 ...

  5. jenkins中通过Publish Over SSH将项目部署到远程机器上

    Publish Over SSH插件使用 在使用Publish Over SSH之前,需要制作SSH私钥.机器间做免密登录配置.假设机器A,ip为192.168.AA.AAA,机器B: 192.168 ...

  6. Java学习 (二) 在MAC终端上运行Java程序

    在MAC上终端上运行Java程序很简单. 首先你得确保Java环境配置正确. 1.在终端使用 cd 命令定位到你Java文件所在目录. 2.编译:输入指令如下 javac Test.java Test ...

  7. 此远程计算机不支持remoteapp,[Tips] 使用 RemoteApp 方式访问远程桌面上的应用程序...

    使用 RemoteApp 方式访问远程桌面上的应用程序 补充这篇日志纯粹是为了方便自己,经验技巧当然是很早以前的!原因是最近经常要访问笔记本上的应用,但又不想基于远程桌面环境,所以直接以应用窗口模式打 ...

  8. java visualvm_使用Java VisualVM监控远程JVM

    今天有同事说使用jvisualvm通过JMX方式连接到远程应用时,Visual GC插件提示"Not supported for this JVM",无法显示堆内存各区的使用情况. ...

  9. pat上写java程序_如何运行Java程序和设置CLASSPAT

    导读: 如何运行JAVA和CLASSPATH环境变量的设置是学习和使用JAVA中最基本的问题,本不应在此赘述.但近来不少人在论坛上提出的问题却与此有关,我平时碰到的一些初学者也往往在这个问题上卡了壳, ...

最新文章

  1. 图像检索中为什么仍用BOW和LSH
  2. FileStream实现多线程断点续传(已封装)
  3. 15个C++项目列表
  4. Disturbed People(思维)
  5. JavaScriptSerializer类 对象序列化为JSON,JSON反序列化为对象
  6. C#制作WinForm控件
  7. java filehelper_Java常用工具类---IP工具类、File文件工具类
  8. ifconfig命令为centos linux系统配置临时的局域名IP、网关以及子网掩码
  9. html页面的盒子边框怎么做的,HTML+CSS入门 用三层盒子结构实现多边框详解
  10. node js 非阻塞io_Node Express JS:套接字IO模块示例
  11. JDK下Bin目录的工具介绍
  12. 粗浅看 Tomcat系统架构分析
  13. Android中使用Notifaction无反应
  14. 《统计学》第八版贾俊平第九章分类数据分析知识点总结及课后习题答案
  15. MATLAB如何导出高分辨率的模型图片、PDF
  16. 金彩教育:如何提升自然流量
  17. mysql根据各种条件统计_Mysql按条件计数多种实现方法解析
  18. 高校青年教师应该怎么提高收入
  19. vue之echarts世界地图七大州分布
  20. 小小Mac:Web移动端适配方案

热门文章

  1. 碳中和专题:碳足迹核算、碳中和顶刊论文、碳排放交易2022
  2. VASP中HF标准和HSE06的INCAR文件介绍
  3. 大学物理第三版朱峰课后答案详解_大学物理学习辅导(第3版)
  4. 你觉得惠普DV2000,DV3000该召回去重新设计散热系统吗? 中国人都来投一票
  5. XenDesktop 的核心组件
  6. 植物大战僵尸:分析植物的攻击速度
  7. 安全L1-网络基础知识-基础篇01
  8. ERROR 2002 (HY000) Can‘t connect to local MySQL server through socket ‘varrunmysqldmysqld.sock‘
  9. scala练习_李孟_新浪博客
  10. 前后端分离项目线上部署