最近在做一个基于多线程的网络抓取,运行过程中总是假死,为此我给线程增加了超时安全退出,但是仍旧没有解决这个问题。后来想了一下,应该有相关的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 Development Kit(JDK)5.0中自带的一个性能监控工具,用于监控Java运行状态、线程数、进程数、对象、JVM内存信息、时间等性能信息。该工具可以帮助开发者和管理员实时监控Java应用程序的运行情况,...
基于Idea+Jconsole实现线程监控步骤 Idea和JConsole是Java开发中两个非常重要的工具,前者是集成开发环境,后者是Java性能分析器。通过将这两个工具组合使用,可以实现线程监控功能,从而对Java应用程序的性能进行...
《JConsole:Java监视与管理控制台详解》 在Java开发和运维过程中,...对于maven项目中出现的JDK相关问题,JConsole是一个有效的排查和解决工具。正确理解和使用JConsole,对于提升Java应用的维护效率具有重要意义。
通过这个工具,用户可以直观地查看到CPU使用率、内存分配、线程信息、类加载统计、MBean(Managed Beans)等重要数据,从而快速定位并解决性能问题。 二、jconsole.jar功能详解 1. **内存监控**:jconsole提供了...
本文将详细讨论`jconsole.1.8.0.jar`这个包的用途、常见问题以及如何有效利用它进行Java应用的监控。 首先,`jconsole.1.8.0.jar`是Java官方JDK中的一个组件,属于Java Mission Control(JMC)的一部分,主要负责...
总结来说,通过xmanage远程打开Jconsole是一种有效的解决Jconsole远程连接问题的方法,它利用了X Window协议和环境变量DISPLAY的特性,使得我们可以在本地机器上直观地监控远程服务器上的Java应用。然而,实施这一...
JConsole基于Swing构建,提供了一个图形用户界面(GUI),用于展示Java虚拟机(JVM)的各种性能指标,如内存使用、线程状态、类加载情况以及MBean服务器的信息。JConsole通过JMX接口与目标JVM进行通信,获取并展示...
3. **诊断问题**:当发现性能问题时,如内存泄漏、线程阻塞,可以利用JConsole提供的堆转储、线程dump等功能进行深入分析。 4. **调整JVM参数**:根据JConsole提供的信息,可以优化JVM参数,如增大堆内存、调整垃圾...
Jconsole是一款强大的Java应用程序监控工具,它包含在JDK的bin目录中,可用于实时监控本地或远程JVM的性能和资源消耗。...对于即将上线的Web应用,使用Jconsole进行监控可以提前发现并解决问题,确保服务稳定运行。
总的来说,JConsole是Java开发和运维中不可或缺的工具,它可以帮助我们深入了解JVM的运行状况,及时发现并解决性能问题,提升应用的稳定性和效率。通过深入学习和使用JConsole,开发者可以更好地管理和优化Java应用...
### JConsole远程监控Tomcat服务知识点详解 #### 一、JConsole简介与功能 - **JConsole**: JConsole是一款基于Java...特别是在部署如Tomcat这样的大型应用时,JConsole能够有效地帮助我们诊断问题,提升整体服务质量。
- **线程监控**:展示当前JVM中的线程信息,包括活跃线程数量、死锁检测结果等。 - **类监控**:提供类加载器的信息,比如已加载的类的数量、已被卸载的类的数量等。 - **GC监控**:显示垃圾回收的情况,包括不同...
通过 JConsole,开发者可以深入理解应用在运行时的内存、线程、类加载、CPU 使用率以及垃圾收集等关键指标,从而进行问题诊断和优化。 **1. 安装与启动** JConsole 通常位于 JDK 的 bin 目录下,无需额外安装。在...
JConsole是Java自带的一款强大的可视化管理工具,它可以用来监控Java应用程序的性能和资源消耗情况,帮助开发者和运维人员及时发现并解决性能问题。本文将详细介绍如何使用JConsole来监控Tomcat服务。 首先,...
### Java JVM JConsole详解 #### 一、JConsole简介与基本使用 JConsole是一个由Oracle提供的免费工具,作为Java ...它可以帮助优化Java应用程序的性能,及时发现并解决问题,从而提高系统的稳定性和可靠性。
此外,还可以通过右键菜单中的“线程转储”功能获取所有线程的信息,这对于诊断多线程应用中的问题非常有用。 3. **类分析**:通过“类”标签页,可以监控类的加载和卸载情况。这对于了解类加载机制和潜在的内存...
在某些复杂场景下,结合源码分析,JConsole能帮助我们定位和解决问题,提升应用程序的稳定性和性能。 总的来说,JConsole是Java开发和运维过程中不可或缺的工具之一,它的强大功能使得我们可以实时监控和调试应用...
通过以上分析,开发者可以更深入地了解应用程序的运行情况,及时发现并解决性能问题。jtop插件的加入,使得jconsole在JDK1.8环境中成为了一个更加强大的性能分析工具。记住,性能优化是一个持续的过程,定期进行性能...
9. **多线程编程**:由于JConsole需要处理多个并发任务,如用户交互、数据收集和更新UI,所以源码中会有大量的多线程编程示例。 通过深入研究JConsole的源代码,开发者不仅可以掌握JMX的使用,还能提升在Java GUI...
java开发常用组件,jconsole-1.8.0.jar jconsole-1.8.0.jar