`
dxm1986
  • 浏览: 429592 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用JDK 1.6自带的jvisualvm监控远程服务器中Java程序资源占用情况

    博客分类:
  • java
阅读更多

使用JDK 1.6自带的jvisualvm监控远程服务器中Java程序资源占用情况

Unix/Linux系统技术杂谈, by 陈威.
热度:

 

      因为做实验的需要,最近把实验室的Web数据抽取程序修改为多线程版本并在服务器上做大量的数据抽取工作,服务器是Ubuntu Server 10.01版本,通过Putty连接监控程序的运行情况非常不直观,需要使用一个Java资源监控程序实现对目标程序的实时监控。Jdk1.5版本提供的监控工具是Jconsole,相信很多早期的Java开发人员都使用过这个程序,但Jconsole的界面实在是有点对不起观众,所以在jdk1.6中Oracle提供了一个新的可视化的JVM监控工具Java VisualVM(官方介绍链接:http://download.oracle.com/javase/6/docs/technotes/guides/visualvm/applications_remote.html),在Windows系统下的Java VisualVM启动路径是$java_home$/jdk1.6.0/bin/jvisualvm.exe
      双击启动Java VisualVM后可以看到窗口左侧“应用程序”栏中有“本地”、“远程”、“快照”三个项目。其中“本地”下显示的是在localhost运行的Java程序的资源占用情况,如果本地有Java程序在运行的话启动Java VisualVM即可看到相应的程序名,点击程序名打开相应的资源监控菜单,以图形的形式列出程序所占用的CPU、Heap、PermGen、类、线程的统计信息。“远程”项下列出的远程主机上的Java程序的资源占用情况,但需要在远程主机上运行jstatd守护程序,下面就以实现对远程Ubuntu Server中运行的Java程序资源监控为例说明如何使用Java VisualVM监控远程Java程序。
      (1)在服务器上安装jstatd组件。由于安装JDK时配置选项的原因,有的服务器中没有默认安装jstatd组件。jstatd是openjdk中的一个package,使用apt-get命令安装openjdk即可。关于jstatd组件的详细介绍可参考:http://download.oracle.com/javase/6/docs/technotes/tools/share/jstatd.html

sudo apt-get install openjdk-6-jdk

      (2)在服务器上配置jstatd的security policy文件。jstatd是一个监控JVM从创建到销毁过程中资源占用情况并提供远程监控接口的RMI(Remote Method Invocation,远程方法调用)服务器程序,它是一个Daemon程序,要保证远程监控软件连接到本地的话需要jstatd始终保持运行。jstatd运行需要通过-J-Djava.security.policy=***指定安全策略,因此我们需要在服务器上建立一个指定安全策略的文件jstatd.all.policy,文件内容如下:

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

      (3)修改服务器hosts文件中的IP地址。要使Java VisualVM成功连接到远程服务器上,服务器端应该在/etc/hosts文件中把本机地址设为本机的IP地址。使用hostname -i命令查看,如果显示的是127.0.0.1或者与本机实际IP不一致的话,需要把/etc/hosts文件中相应的地址改为本机实际IP。
      (4)运行jstatd守护程序。由于jstatd需要保持一直运行,所以建议使用screen命令执行jstatd程序,命令如下:

screen jstatd -J-Djava.security.policy=jstatd.all.policy

如果需要RMI日志功能的话,还可以在启动参数中加入-J-Djava.rmi.server.logCalls=true。jstatd开始运行后,使用CTRL+A+D断开screen界面,回到shell界面。如果想切换回jstatd运行界面的话,使用screen -r -d命令即可。
      (5)通过Java VisualVM连接到服务器监控Java程序。在Java VisualVM程序窗口左侧“远程”项目右键选择“添加远程主机”,在弹出的对话框中输入远程主机的IP地址,确认提交后即可看到相应的远程主机和在上面运行的Java程序,连接成功后应该会显示Jstatd及其PID。

 

另外一种方式:

tomcat catalina中配置

JAVA_OPTS=' -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false'

 

 

http://www.chenweionline.cn/archives/56.htm

 

 

分享到:
评论

相关推荐

    java 官方原版jdk 1.6

    java 官方原版 jdk 1.6

    okhttp3.8源码使用jdk1.6重新编译_okhttp3.8.0-jdk1.6.zip

    1.okhttp3.8源码使用jdk1.6重新编译,已集成了okio,在javaweb项目中使用,未在安卓项目中使用 2.okhttp3.8源码使用jdk1.6重新编译_okhttp3.8.0-jdk1.6.jar

    苹果电脑安装jdk1.6 mac for jdk1.6 jdk6 安装版

    mac for jdk1.6 jdk6 安装版 里面有两个jdk1.6的安装包,都可以用 如果电脑上安装有1.7,1.8等高版本jdk就不要再下安装包了,安装包安装会报错 命令是这个:brew install java6或 brew install homebrew/cask-...

    aspose-words-15.8.0-jdk1.6

    aspose-words-15.8.0-jdk1.6aspose-words-15.8.0-jdk1.6aspose-words-15.8.0-jdk1.6aspose-words-15.8.0-jdk1.6aspose-words-15.8.0-jdk1.6aspose-words-15.8.0-jdk1.6aspose-words-15.8.0-jdk1.6aspose-words-...

    ZxingUtil生成二维码适用JDK1.6及以下

    ZxingUtil生成二维码适用JDK1.6及以下,自己使用JDK1.6,生成的二维码为彩色

    如何解决JDK1.6下的Base64

    可以用于解决jdk1.6下rt.jar中不支持Base64的问题。资源中包含替代包

    java jdk 1.6 for mac

    这个是mac os的jdk1.6版本,亲测没有任何问题,目前官网上已经下载不到mac os的jdk的1.6版本了。

    java 连接 oracle(JDK1.6)驱动

    java jdbc oracle (JDK1.6)驱动

    JDK1.6API文档

    JDK1.6API。java1.6开发文档,最新官网文档。满足java开发需求

    okhttp包含okio(亲测可在jdk1.6环境运行)

    适合okhttp,okio JDK1.6:okhttp3.8.0-jdk1.6.jar JDK1.6+:okhttp-3.12.13.jar;okio-1.15.0.jar 适用于Java开发环境、使用OkHttp调用

    JDK 1.6 绿色版 4

    JDK 1.6 绿色版,我想很多人可能都需要,这是分卷4,剩下的分卷地址如下: JDK 1.6 绿色版 2 http://download.csdn.net/source/1502201 JDK 1.6 绿色版 3 http://download.csdn.net/source/1502209 JDK 1.6 绿色版...

    JDK1.6 Mac 官方正式版

    JDK1.6 Mac版 请先退出任何 Java 应用程序,然后再安装 JDK1.6 Mac版 请先退出任何 Java 应用程序,然后再安装

    jdk1.6解决base64

    解决JDK1.6下的sun的Base64不可用情况。

    Windows JDK 1.6 安装包

    Windows JDK 1.6 安装包,解压后直接双击安装,简单易用。 下面是Oracle官网对 Java 的介绍:Oracle Java is the #1 programming language and development platform. It reduces costs, shortens development time...

    JDK1.6百度云下载

    JDK1.6百度云下载,里面有qq号,要是链接失效了,可以找我

    JDK 1.6 JDK 1.6 winxp专用 winxp专用

    JDK 1.6 JDK 1.6 JDK 1.6 JDK 1.6 JDK 1.6 winxp专用 winxp专用winxp专用winxp专用winxp专用winxp专用

    解决JDK1.6下的Base64报错问题

    解决JDK1.6下的Base64报错问题,资源文件里有jar包,及替换方法

    JDK1.6版本java

    java 版本的JDK1.6,里面有64位,开发java和学习java必备工具

    JDK1.6,Linux 64位

    jdk1.6.0_45,Linux 64位,Ubuntu 或者 CentOS 均可,亲...export JAVA_HOME=/opt/jdk1.6 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PAT

    jdk1.6 windows 64位

     EE(J2EE),enterpsise edtion,企业版,使用这种JDK开发J2EE应用程序,从JDK 5.0开始,改名为Java EE。 ME(J2ME),micro edtion,主要用于移动设备、嵌入式设备上的java应用程序,从JDK 5.0开始,改名为Java ME。组成...

Global site tag (gtag.js) - Google Analytics