jvm监控环境搭建

来源:互联网 发布:p2p网络借贷暂行办法 编辑:程序博客网 时间:2024/06/10 15:33
VisualVM是Sun的一个OpenJDK项目,其目的在于为Java应用创建一个整套的问题解决工具。它集成了多个JDK命令工具的一个可视化工具,它主要用来监控JVM的运行情况,可以用它来查看和浏览Heap Dump、Thread Dump、内存对象实例情况、GC执行情况、CPU消耗以及类的装载情况。 Java开发人员可以使用 VisualVM创建必要信息的日志,系统管理人员可用来监控及控制Java应用程序在网络中的运行状况。 

使用visual vm远程监控tomcat运行情况,需要对tomcat主机设置如下:

1. 通过jstatd启动RMI服务
        配置java安全访问,将如下的代码存为文件 jstatd.all.policy,放到JAVA_HOME/bin中,其内容如下,
        grant codebase "file:${java.home}/../lib/tools.jar" {

               permission java.security.AllPermission;

          };

2、给文件增加可执行权限chmod +x tomcat

3、执行命令jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.2.83 &

     因为是守护进程,需要在最后增加 &符号

     注意IP需要替换为实际的IP

4、visual vm新增监控主机


主机名添加已经开启jstatd监控的ip,

可以看到2.83已经监控了三个tomcat,通过pid可以了解到是哪个应用。

内存占用分析工具

mat.zip

常见问题解决:

1、启动jstat进程报如下错误:

     

[tomcat@localhost ~]$ Could not create remote object
access denied ("java.util.PropertyPermission" "java.rmi.server.ignoreSubClasses" "write")
java.security.AccessControlException: access denied ("java.util.PropertyPermission" "java.rmi.server.ignoreSubClasses" "write")
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:372)
at java.security.AccessController.checkPermission(AccessController.java:559)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at java.lang.System.setProperty(System.java:783)
at sun.tools.jstatd.Jstatd.main(Jstatd.java:139)

     是由于先启动远程visual vm监控,再启动jstat导致。关闭visual vm,即可启动成功。

原创粉丝点击