JConsole监控jvm

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的信息

wKiom1b8uK2ArKJmAAbKgvapCD0854.png


其他的就根据需要监测即可

相关文章
相关标签/搜索