摘要:能够提供被监控虚拟机的内存线程类的加载以及等信息,从而能够对服务器的运行情况进行实时监控。目前支持两种监控方法方法和基于的方法。下一篇博客讲解以方式实现远程监控。
转自: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方式实现远程监控。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/70515.html
摘要:原文链接这是专家系列文章的第二篇。运行在本地虚拟机上的应用的又称为,通常与相同。性能数据需要持续观察,因此在运行时需要定时输出的监控信息。新生代容量的统计信息。是提供的一个式的图表监控工具。 原文链接:http://www.cubrid.org/blog/dev-platform/how-to-monitor-java-garbage-collection/ 这是GC专家系列文章的第二...
摘要:引曾几何时这句话总是在你的程序中出现,新手到是什么问题后就去改了内存大小还总是分不清楚,想的是总之设大点我就看不到这个错误了。稍微有点经验的会翻翻看看什么地方会出现内存泄露,当然也会改参数,但会有节制的改了。 引 曾几何时java.lang.OutOfMemoryError: Java heap space这句话总是在你的程序中出现,新手search到是什么问题后就去改了内存大小还总...
摘要:为了安全考虑有些服务器会被限制登录本文介绍如何获取远程服务器上进程的运行状态启动服务在服务器端启动服务后远程的机器可以通过协议获取服务器上程序的运行状态在服务器上创建的授权文件假设文件路径为内容如下如果你的目录不是的话请改为正确的值接下来通 为了安全考虑, 有些服务器会被限制登录. 本文介绍如何获取远程服务器上 Java 进程的运行状态. 启动 jstatd 服务 在服务器端启动 ...
摘要:快照,带线程命令,是显示全部进程,是显示线程,全格式输出显示进程树,不加显示所有实时快照推荐程度按数字从小到大。 有时候好好的程序放到生产服务器上一段时间后,就会发现服务器响应缓慢,进而进一步发现是cpu过高,于是就慌了,造成cpu过高的原因很多,不过大多是由于资源吃紧造成,例如:sql执行过慢,程序里存在死循环,数据库连接未释放,网络阻塞导致的第三方框架代码出现死循环,大量的操作导致...
阅读 4679·2021-09-22 16:06
阅读 2075·2021-09-22 15:22
阅读 1413·2019-08-30 15:54
阅读 2517·2019-08-30 15:44
阅读 2343·2019-08-29 16:31
阅读 2013·2019-08-29 16:26
阅读 2330·2019-08-29 12:41
阅读 734·2019-08-29 12:22