Jstatd方式远程监控Linux下 JVM运行情况

转自:http://www.cnblogs.com/catkin…
介绍两个jdk1.8自带的可视化监视工具

Jconsole:

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

JVisualVM:

是Netbeans的profile子项目,已在JDK6.0 update 7 中自带(java启动时不需要特定参数,监控工具在bin/jvisualvm.exe),能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的)。

VisualVM和JConsole在监控本地JVM的时候是很方便的。只要应用程序运行起来,我们就可以连接上本地JVM,从VisualVM里面监控JVM的情况。

远程服务器上的JVM监控就需要一些额外的配置。目前VisualVM支持两种监控方法:Jstatd方法和基于JMX的方法。

这篇博客我们先介绍Jstatd方法

jstatd是一个rmi的server应用,用于监控jvm的创建和结束,并且提供接口让监控工具可以远程连接到本机的jvm 。jstatd位于 $JAVA_HOME/bin目录下,具体使用方法如下:

1,启动RMI服务

在需要被监控的服务器上面,通过jstatd来启动RMI服务
首先,配置java安全访问,在服务器jdk路径(/java_home/bin)下新建文件
名称: jstatd.all.policy
内容:

grant codebase “file:${java.home}/../lib/tools.jar” {

permission java.security.AllPermission;

};
然后在进入jstatd.all.policy所在目录下,通过如下的命令启动RMI服务:

./jstatd -J-Djava.security.policy=jstatd.all.policy
或者

./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=服务器IP

2.启动客户端的VisualVM,添加远程主机

VisualVM 在/java_home/bin目录下

连接后会自动加载出服务器JVM运行情况。

在Jstatd监控方式下,JConsole是不能启用的,因为JConsole登录需要端口号。

另外我们还可以为VisualVM安装一些插件,比如GC,MBeans等等。满足自己的需要。下一篇博客讲解以JVM方式实现远程监控。

    原文作者:liumang
    原文地址: https://segmentfault.com/a/1190000011289996
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞