欢迎来到天天文库
浏览记录
ID:42562935
大小:1.48 MB
页数:14页
时间:2019-09-17
《Java 内存泄露监控工具》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java内存泄露监控工具Java内存泄露监控工具(一)--JVM监控工具介绍jstack,jconsole,jinfo,jmap,jdb,jsta2010-03-1713:20jstack--如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的javastack和nativestack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的javastack和nativestack的信息
2、,如果现在运行的java程序呈现hung的状态,jstack是非常有用的。目前只有在Solaris和Linux的JDK版本里面才有。jconsole–jconsole是基于JavaManagementExtensions(JMX)的实时图形化监测工具,这个工具利用了内建到JVM里面的JMX指令来提供实时的性能和资源的监控,包括了Java程序的内存使用,Heapsize,线程的状态,类的分配状态和空间使用等等。jinfo–jinfo可以从core文件里面知道崩溃的Java应用程序的配置信息,目前只有在Solaris和
3、Linux的JDK版本里面才有。jmap–jmap可以从core文件或进程中获得内存的具体匹配情况,包括Heapsize,Permsize等等,目前只有在Solaris和Linux的JDK版本里面才有。jdb–jdb用来对core文件和正在运行的Java进程进行实时地调试,里面包含了丰富的命令帮助您进行调试,它的功能和Sunstudio里面所带的dbx非常相似,但jdb是专门用来针对Java应用程序的。jstat–jstat利用了JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap
4、size和垃圾回收状况的监控等等。jps–jps是用来查看JVM里面所有进程的具体状态,包括进程ID,进程启动的路径等等。 jstatd启动jvm监控服务。它是一个基于rmi的应用,向远程机器提供本机jvm应用程序的信息。默认端口1099。实例:jstatd-J-Djava.security.policy=my.policymy.policy文件需要自己建立,内如如下:grantcodebase"file:$JAVA_HOME/lib/tools.jar"{permissionjava.security.AllPe
5、rmission;};这是安全策略文件,因为jdk对jvm做了jaas的安全检测,所以我们必须设置一些策略,使得jstatd被允许作网络操作上面的操作没有通过,出现:Couldnotcreateremoteobjectaccessdenied(java.util.PropertyPermissionjava.rmi.server.ignoreSubClasseswrite)java.security.AccessControlException:accessdenied(java.util.PropertyPerm
6、issionjava.rmi.server.ignoreSubClasseswrite)atjava.security.AccessControlContext.checkPermission(AccessControlContext.java:323)atjava.security.AccessController.checkPermission(AccessController.java:546)atjava.lang.SecurityManager.checkPermission(SecurityManage
7、r.java:532)atjava.lang.System.setProperty(System.java:727)atsun.tools.jstatd.Jstatd.main(Jstatd.java:122)createinyourusr/java/binthejstatd.all.policyfile,withthecontentmustbe1.grant codebase "file:${java.home}/../lib/tools.jar" { 2.permission java.security.All
8、Permission; 3.}; jps列出所有的jvm实例实例:jps列出本机所有的jvm实例jps192.168.0.77列出远程服务器192.168.0.77机器所有的jvm实例,采用rmi协议,默认连接端口为1099(前提是远程服务器提供jstatd服务)输出内容如下:jones@jones:~/data/ebook/java/j2se/jdk_gc
此文档下载收益归作者所有