最近在做一个基于多线程的网络抓取,运行过程中总是假死,为此我给线程增加了超时安全退出,但是仍旧没有解决这个问题。后来想了一下,应该有相关的JVM问题定位工具,搜索了一下相关内容,发现jconsole可以考虑尝试一下。
1. jconsole 是什么?
从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码。
2. jconsole 如何启动?
将java/bin设置到path路径下,在命令窗口>>jconsole 这样就可以启动了
3. jconsole中图形分析-线程
查看每个线程详细情况,两个指标:总阻止数 总等待数 这两个指标中总等待数如果过于大则表明有可能出问题,而我的应用里面发现这个值已经超过3w,继续查看堆栈跟踪,发现在调用某个方法的时候出现循环调用,记录下代码行数,去源代码中进行分析,发现递归嵌套会导致的死循环,修复此行代码,进行测试,发现线程总等待数趋于平衡,问题解决。
反思:
1.问题发生之前: 写代码的阶段一定要注意必须有测试方法做为支撑
2.问题发生之后:冷静的分析,找到合适的工具,学习图形指标的意义,仔细观察,大胆猜测。
相关推荐
jconsole使用手册,用于监控java运行状态,线程数,进程数,对象,jvm内存信息,时间等性能
主要介绍了基于Idea+Jconsole实现线程监控功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
jconsole.jar下载
jconsole源码 源码 jconsole jmx
性能监控JConsole远程监控Tomcat服务
jconsole.1.8.0jar 这个包也经常maven导入报错 也是本人亲测有效
jconsole介绍 和相关配置,简单举例jconsole的配制方法
如果初次接触JConsole,应该会很有用的!
jconsole工具,内置在jdk8中,主要监控 JVM 的概览、内存、线程、类、vm概要、MBean等内容。内含jconsole的连接使用说明
介绍通过Jconsole工具对Java的应用进行监控
是不是有时候jconsole配置后重启报错,那么试试这个,万能的远程打开jconsole
JConsole能够提供被监控虚拟机的内存、线程、类的加载以及MBean等信息,从而能够对服务器的运行情况进行实时监控。 其实在 JDK 5 中已经新加入了这个功能了. 现在的 JDK 已经内置了对 VM 的监控功能. JDK 6 中这个...
java开发常用组件,jconsole-1.8.0.jar jconsole-1.8.0.jar
jconsole.jar
maven 项目缺少或报相关jdk- jconsole相关的错,这个jar包使用后就没问题了
jvm检测工具,jconsole工具介绍,其他同类工具介绍
JConsole(观察分析Java程序的运行)
介绍了如何使用JConsole分析JVM,一步一步使用JConsole
分享 JConsole 源代码,MyEclipse工程