`
waterfox
  • 浏览: 9621 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于JAVA性能监控你不了解的5件事(一)

阅读更多

      当遇到应用性能问题时,大多数开发者都有足够的理由惊慌。查找引发Java 应用产生瓶颈的原因历来都是很头疼的问题,因为Java虚拟机的暗箱效果和Java平台的程序调试工具短缺导致。所有这些都随着Java5的JConsole问世而改变。JConsole是一个内建的Java性能分析工具,可以从命令行启动,在GUI中运行。在这篇文章中,我将介绍5种使用JConsole的简单方法来监控Java应用的性能和追踪你代码中的瓶颈。

 

1. JDK中的程序分析工具

      很多开发者不知道自从Java5以后就有一个程序分析工具被集成进了JDK中。在Java5中,Java进程创建时默认不会被分析。通过在启动时加 入命令行参数 -Dcom.sun.management.jmxremote  来告诉Java 5 VM开启连接,分析工具就能找到它。一旦你的进程被JConsole找到,你就可以通过双击它来开始分析。分析器用它自己的开销,所有花些时间来找出这些 开销是不错的主意。找出JConsole开销的最简单方法就是先让一应用自己运行,然后让这个应用在分析器下运行,然后找出他们之间的差别。(这个应用不 能太小或太大,我喜欢用JDK自带的SwingSet2这个例子)所有,作为实例,我先尝试加 -verbose:gc参数运行SwingSet2 来观察垃圾回收曲线,然后在分析器下运行同样的应用。当JConsole连接上以后,会看到一稳定的GC曲线,没有其他的,这就是分析器的开销。

 

2. 远程连接到进程

      因为Web应用分析假设通过socket连接来分析,你只需要一些配置启动JConsole来远程监控/分析运行的应用。例如,如果tomcat运行在名称为“webserver”的机器上,JVM允许JMX并且监听9004端口。从JConsole(或其他JMX客户端)连接需要一JMX URL "service:jmx:rmi:///jndi/rmi://webserver:9004/jmxrmi".本质上,你要分析远程的应用服务只需要JMX URL。


3. 跟踪分析

      JConsole有很多选项卡,对采集分析很有用,包括:

  • Memory:用来跟踪JVM垃圾回收器中堆的活动。
  • Threads:用来检查选定JVM中当前线程的活动。
  • Classes:用来查看JVM中加载的class的总数量。

假如你的Tomcat进程总是因为OutOfMemoryErrors而当掉。如果你想找到原因,打开JConsole,点击Classes选项卡,观察class的数量一段时间。如果这数量持续增加,这时你可以假设你的应用服务器或者你的代码某处有类加载问题,并且用不了多久就会出现超出PermGen空间问题。点击Memory选项卡,如果你想进一步确定问题所在。


4. 创建堆备份做离线分析

      在生产环境中,事情发展的很快,你没有足够的时间来做应用分析。这时,你可以把你Java环境中的所有东西做个快照,用来以后做分析。你可以在JConsole中做这些,但在VisualVM(Java 6 以后,需单独下载)中会更好。


5. JConsole 并非难事

     作为一个分析工具,JConsole很好,但有很多其他的工具比他更出色。有些分析器带有分析插件或是漂亮的界面,或是能够跟踪更多的数据。但JConsole最令人着迷的地方是,它完全是由plain old Java写的,这意味着你也可以写这样的工具。事实上,JDK甚至包含一个创建一插件来定制JConsole的例子。如果JConsole不满足你的需求,你可以在此基础上写你自己的程序分析工具。见build your own profilier 你所要做的仅是命令行工具通过JMX连接,跟踪你感兴趣的数据,以你想要的方式。

 

 

本文引自:http://www.ibm.com/developerworks/java/library/j-5things8.html

 

翻译的不好,见谅!

2
0
分享到:
评论

相关推荐

    关于Java性能监控您不知道的5件事

    关于Java性能监控您不知道的5件事

    java虚拟机性能监控

    根据给定材料中的内容,我们可以了解到Java虚拟机性能监控涉及到了多个层面的工具,包括但不限于: - **网络管理系统**:用于监控网络设备的状态,如路由器、交换机等。 - **操作系统监控工具**:例如`vmstat`、`...

    JavaMelody JAVA Web项目服务器性能监控工具

    JavaMelody是一款强大的JAVA Web项目服务器性能监控工具,它能够实时、全面地监控应用程序的运行状态,帮助开发者和运维人员了解系统性能瓶颈,及时发现并解决问题。通过在Java Web应用中简单集成,JavaMelody就能...

    Java性能监控工具Jprofiler4.3.2

    Java性能监控工具JProfiler是Java开发中的重要辅助软件,它为开发者提供了深入的性能分析功能,帮助优化应用程序的运行效率。JProfiler 4.3.2版本是该工具的一个历史版本,虽然较新版本可能拥有更多特性,但4.3.2...

    Java生产环境下性能监控与调优详解课程笔记(完整版)

    一、Java性能监控工具 1. JVisualVM:集成在JDK中的一个多用途工具,可以进行内存分析、线程快照、CPU分析等,直观了解程序运行状态。 2. JConsole:同样是JDK自带的监控工具,提供了GUI界面来监视Java应用程序的...

    JavaMelody开源系统性能监控

    JavaMelody是一款强大的开源系统性能监控工具,专为Java应用程序设计。它允许开发者和运维人员实时监测应用的运行状态,从而有效地识别并解决性能问题。JavaMelody通过简单的集成方式,提供了一整套全面的监控指标,...

    JAVA实时屏幕监控

    标题中的“JAVA实时屏幕监控”指的是使用Java编程语言开发的一种技术,它允许程序实时捕获和分析用户的屏幕活动。在IT领域,这种功能通常用于远程协助、员工监控、软件演示或者安全监控等场景。Java的跨平台特性使得...

    newrelic-java-3.45.0.zip_java 性能监控

    Java性能监控是优化应用程序的关键环节,New Relic是一家知名的云监测服务提供商,其Java插件在业界广泛应用。本文将深入探讨New Relic Java性能监控工具的特性、功能以及如何使用。 New Relic Java Agent是一款...

    java流量监控软件

    Java流量监控软件是一种专门用于监测网络流量的工具,它由Java编程语言开发,能够通过连接到网络交换机的特定端口来收集数据。这样的软件在IT运维和网络管理中非常关键,因为它允许管理员实时了解网络的健康状况,...

    javamelody性能监控jar和war

    JavaMelody是一款强大的开源性能监控工具,主要用于监测Java Web应用程序的运行情况。它提供了一整套功能,包括请求处理时间、内存使用、数据库查询、线程状态、HTTP session信息等,帮助开发者和运维人员实时了解...

    java文件监控例子

    通过学习这个例子,你可以了解如何在自己的Java应用中集成文件监控功能,提升程序的响应性和实时性。在实际开发中,可以根据需求调整监控的粒度和性能优化,比如设置适当的缓冲以减少不必要的回调,或者采用异步处理...

    java开发的一个windows的远程监控软件

    标题中的“java开发的一个windows的远程监控软件”表明这是一个使用Java编程语言开发的应用程序,其主要功能是针对Windows操作系统进行远程监控。Java是一种跨平台的编程语言,这意味着编写好的Java程序可以在任何...

    java服务器资源监控脚本.zip

    "java服务器资源监控脚本.zip"这个压缩包文件提供了一系列工具和脚本,用于帮助我们追踪和分析服务器上的关键性能指标。这些工具通常包括线程Dump分析、CPU使用率监控、网络性能检查、I/O操作检测以及JVM垃圾回收...

    监控JAVA应用的好工具javamelody

    Rrdtool是一种高效的数据存储方案,特别适合于长期保存时间序列数据,如性能监控数据。jrobin库使得JavaMelody能够在不依赖外部软件的情况下,本地持久化监控数据,方便后期分析和对比。 要开始使用JavaMelody,...

    java项目 监控

    在Java编程领域,"监控"通常指的是应用程序性能监控(APM)或系统监控。这个小型Java项目显然旨在提供一个解决方案,以便开发者或者运维人员能够实时跟踪和分析Java应用的运行状态。监控是至关重要的,因为它可以...

    大话JAVA性能优化.pdf

    大话Java性能优化》主要提供Java性能调优方面的参考建议及经验交流。作者力求做到知识的综合传播,而不是仅仅只针对Java虚拟机调优进行讲解,另外力求每一章节都有实际的案例支撑。具体包括:性能优化策略、程序编写...

    MyPerf4J一个针对高并发低延迟应用设计的高性能Java性能监控和统计工具

    总的来说,MyPerf4J 是一个强大的性能监控工具,对于任何需要优化性能的 Java 应用都是不可或缺的利器。无论是开发阶段的性能测试,还是生产环境的持续监控,MyPerf4J 都能提供详尽的数据支持,帮助开发者打造更高...

    javamelody监控

    JavaMelody是一款强大的开源监控工具,专为...它的易用性和灵活性使其成为Java Web开发中不可或缺的工具之一。在日常维护工作中,定期检查JavaMelody提供的监控数据,有助于提前预防潜在的问题,保持应用的高效运行。

    java性能分析文档

    Performance Analyzer是一款专门针对Java性能的工具,它提供了深入洞察应用程序性能的能力,帮助开发者识别并解决性能瓶颈。 在Java性能分析中,我们通常关注以下几个核心知识点: 1. **JVM内存模型**:Java虚拟机...

Global site tag (gtag.js) - Google Analytics