JVM监控工具使用速查手册

本文向大家描述一下JVM监控工具的用法,经过简单试用,这些命令+图形工具已经足够强大,能满足一般的监控要求了,如对各类内存、垃圾回收、线程状态的监控。

JVM监控工具用法指导手册

一直没有做过JVM监控,总以为要找些专门的工具才能做JVM监控,如jprofile之类的工具,但这类工具都是收费的。经过查找,发现其实sun的jdk中就带有这类工具,从jdk5开始命令行有了jstat,jps,jstatd,图形监控有了jconsole;而到了jdk6,命令有了jmap,jinfo,jstack,图形有了jvisualvm。经过简单试用,这些命令+图形工具已经足够强大,能满足一般的监控要求了,如对各类内存、垃圾回收、线程状态的监控。

JVM监控工具之jstatd

启动JVM监控服务。它是一个基于rmi的应用,向远程机器提供本机JVM应用程序的信息。默认端口1099。
实例:jstatd-J-Djava.security.policy=my.policy

my.policy文件需要自己建立,内容如下:

 

  1. grantcodebase"file:$JAVA_HOME/lib/tools.jar"{  
  2. permissionjava.security.AllPermission;  
  3. };  

 

 

这是安全策略文件,因为jdk对JVM做了jaas的安全检测,所以我们必须设置一些策略,使得jstatd被允许作网络操作

JVM监控工具之jps

列出所有的JVM实例
实例:
jps
列出本机所有的JVM实例
jps192.168.0.77
列出远程服务器192.168.0.77机器所有的JVM实例,采用rmi协议,默认连接端口为1099
(前提是远程服务器提供jstatd服务)

输出内容如下:

 

  1. jones@jones:~/data/ebook/java/j2se/jdk_gc$jps  
  2. 6286Jps  
  3. 6174Jstat

JVM监控工具之jconsole

一个图形化界面,可以观察到java进程的gc,class,内存等信息。虽然比较直观,但是个人还是比较倾向于使用jstat命令(在最后一部分会对jstat作详细的介绍)。

JVM监控工具之jinfo(linux下特有)

观察运行中的java程序的运行环境参数:参数包括JavaSystem属性和JVM命令行参数
实例:jinfo2083
其中2083就是java进程id号,可以用jps得到这个id号。
输出内容太多了,不在这里一一列举,大家可以自己尝试这个命令。

你可能感兴趣的:(java,jvm,jdk,服务器,工具,图形)