java程序jvm监控一直是个蛋疼的问题,无意中网上看到JDK自带JConsole 可以监控JVM并且支持可视化图形,就自己测试了一下。
在网上看到VisualVM也支持监控JVM,查了下发现这个是JConsole的升级版,还能监控和分析垃圾回收和线程。
首先JConsole这个是JDK里面自带的工具 在JAVA_HOME/bin目录下,今天主要测试远程监控JVM
1.设置好需要远程机器的Tomcat (这里我的机器是centos)
修改catalina.sh
在 ----- Execute The Requested Command --这一行上面设置
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=*****"
修改完后重启tomcat netstat -an| grep 12345 查看配置的端口号是否启动
启动成功后就可以远程连接了
错误: 代理抛出异常错误: java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: centos4: centos4: 未知的名称或服务
Error: Exception thrown by the agent : java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: centos4: centos4: Name or service not known
原因是/etc/hosts文件里没有主机名为:linux,解决方法就是在hosts文件中加入linux,修改后的hosts的文件是:
127.0.0.1 linux localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
2.启动JConsole
Jconsole能捕获到以下信息:
概述
- JVM概述和一些监控变量的信息内存
- 内存的使用信息线程
- 线程的使用信息类
- 加载java类的信息VM
- JVM摘要MBeans
- 所有MBeans的信息
其他的就根据需要监测即可
本文出自 “linux---基础篇” 博客,请务必保留此出处http://perin.blog.51cto.com/10410663/1758802
原文地址:http://perin.blog.51cto.com/10410663/1758802