Java自带的性能监控工具使用简介

对于使用命令行远程监控jvm太麻烦?那可以试试sun提供的jvisualvm.exejdk1.6自带了,可以到bin目录下找到它。

154725_JRI8_1451483.png


         什么也不说了,直接运行此exe,打开界面如下:

01155307_pGlP.png(图1

         (上图1左边的数可以看到,VisualVM分为3类,Local它会自动侦测到,并显示出来)

         双击Local下的任一节点,看到右边的变化(有点像JProfiler

01155307_9zB6.png

01155308_CHfI.png

 看看Visual GC的界面(Java Heap的使用,一目了然)

01155308_N0WX.png

   再在左边的树形窗口,右键看看(看到了Thread Dump, Heap Dump

01155308_kXUH.png

 Thread Dump很快,马上就可以看到结果

01155308_SJNZ.png

 Heap Dump要稍花费一些时间(可以看到当前heap里对象的数量及占用的比例,做OOM很好用)

01155308_sCyn.png

(图6

                   双击每一行,可以看到具体的信息

01155308_TVOa.png
155129_CQWJ_1451483.png

2、连接远程机器

01155308_9fU7.png

(8)

3、点击OK,看到会连接到远程机器,并显示出它下面的java进程。

01155309_CGNV.png

  到 这个时候的操作,就和上面Local的描述操作一样了。

 

最后,要注意的地方:

最好使用jdk1.6以上版本,不然visualVM很多功能不能用。

你自己也可以写一个VisualVM插件(基于NetBeans的插件体系),完成特殊的任务。


JConsole使用

一、JConsole远程监控Tomcat服务器 

  为了解决内存溢出的问题,会用到一些监视内存的工具,jconsole这个工具是jdk5.0自带的工具,所以如果你的jdk是5.0那么就不用去安装。 这个工具可以查看系统的 堆,非堆,线程,等等的一些整体的情况,从而可以判断出系统的一个大概的性能情况。 

那么配置如下:如果你是用tomcat,在 catalina.bat来设置set JAVA_OPTS=%JAVA_OPTS%  -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=7080 -Dcom.sun.management.jmxremote 

特别注意:-Dcom.sun.management.jmxremote.port=7080,这个端点是jconsole专用的,不要和你的系统的端点冲突。再启动你的应用。 

ok,配置好了后,就直接进dos命令 ,后 输入 java 回车, 再接着 输入 jconsole,它会弹出一个界面,你直接点“远程连接”的选项卡,主机就填你要监控的ip地址名,端口与 你配的-Dcom.sun.management.jmxremote.port 的端口一致就可以了,再连接就可以了。如果连接成功就会进入监控你的系统。

二、JConsole远程监控JBoss服务器 

Java 5.0采用JMX方式提供了一系列监视和管理虚拟机的API,随SDK一起发布的JConsole则是采用这些API实现监控虚拟机的使用工具。 JConsole能够提供被监控虚拟机的内存、线程、类的加载以及MBean等信息,从而能够对服务器的运行情况进行实时监控。

1、环境

服务器:Redhat Linux ES 3.0 + JDK 1.5.06 + Jboss 4.0.2

                ip地址:192.168.1.5

客户机:Windows + JDK 1.5.06

2、配置

修改java虚拟机启动参数

             在%JBOSS_HOME%\bin\run.sh文件中将

            JAVA_OPTS="$JAVA_OPTS -Dprogram.name=$PROGNAME "

            修改为:

           JAVA_OPTS="$JAVA_OPTS -Dprogram.name=$PROGNAME -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

          注意:9999表示监控的端口号,确保指定的端口不被占用;可以采用netstat -an来查看已经占用的端口;配合lsof -i:portnum 来查看占用端口的具体应用程序;另外如果开启了防火墙服务,请确保端口能够透过防火墙访问;

启动JBoss服务器

             ./run.sh -b192.168.1.5,必须通过-b参数指定Jboss服务器绑定的地址; 

连接远程虚拟机

         启动%JAVA_HOME%\bin目录下的JConsole,在弹出对话框的“远程”属性页的“主机名或ip”中输入192.168.1.5,在“端口”中输入9999,选择“连接”,就能查看到远程Jboss服务器的运行情况了。


01155309_4DxF.jpg

















转载于:https://my.oschina.net/u/1451483/blog/423431

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值