`
shoushou2001
  • 浏览: 33709 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

借助MAT、VisualVM进行JVM性能调优

阅读更多

       公司有一个老的营销系统,是基于JDK1.4开发的,原来是集成在公司的协同办公平台上,这个系统问题可真不少,特别不稳定,经常会发生内存溢出现象,一天要自动关闭服务好几回,不仅影响了使用这个系统的人,也严重影响使用协助办公平台的人,更给管理员带来不少麻烦。借着给协同办公平台升级的时机,我决定改进一下营销系统的运行状况。

  处理这种问题的第一步:应用分离,把影响控制到最小范围内。首先是把这个营销系统跟协同办公平台分离,各自部署一个应用,然后提供单点登录,让使用营销系统的人可以在使用协同办公平台的时候直接登录到营销系统。这样子,即使营销系统出了问题,也不会影响到其他人使用营销办公平台。

  第二步:查找问题所在,为什么这个系统会这么频繁地发生OME现象?用MAT对导出的二进制堆文件做分析,发现占据了一半内存的对象是CacheModel,CacheModel是iBatis的缓存对象。分析这个系统,很多时间都是在做CRUD操作,我的判断是,缓存有多余的,或是没有发挥其应有的功能,于是,果断地把iBatis缓存关闭。再观察,OME现象已有好转,用MAT观察,没发现占据多数内存的对象,但情况仍不容乐观,仍然会经常发生OME现象,于是,怀疑的重点转系到JVM的垃圾回收。

  第三步:升级JDK,直接部署在JDK1.6上,修改了几个不兼容的类之外,系统能够正常启动,也能够正常访问使用。与JDK1.4相比较,JDK1.6在垃圾回收上有了很大的改进,用VisualVM观察,系统连续运行100个小时,没发生OME现象,并且堆的分配和回收也没有什么异常现状,OK.

     至此,使用MAT、VisualVM协助进行JVM性能调整的工作有个不懒的结果。^_^

0
0
分享到:
评论
3 楼 wangen2009 2015-01-09  
写的很粗糙,只能算是个人心得
2 楼 shoushou2001 2011-06-20  
langyu 写道
OME的时候有dump heap文件么?我怀疑还是与系统代码有关


系统代码确实存在一些问题,不过是旧系统,而且最近也在开发新的替换系统,现在能够正常运行也就达到调整的目的了,用MAT观察已看到不到占用内存比较大的对象存在。

BTW: 1、-XX:+HeapDumpOnOutOfMemoryError在OME的时候生成dump heap
     2、VisualVM可以导出dump heap
1 楼 langyu 2011-06-20  
OME的时候有dump heap文件么?我怀疑还是与系统代码有关

相关推荐

    深入理解Java虚拟机(jvm性能调优+内存模型+虚拟机原理).zip

    《深入理解Java虚拟机》是一本深度探讨Java虚拟机(JVM)的著作,涵盖了JVM性能调优、内存模型以及虚拟机原理等多个关键领域。本文将基于这些主题,详细阐述其中的重要知识点。 首先,我们要了解Java虚拟机(JVM)...

    个人总结之—JVM性能调优实战

    - **JVM结构与工作原理**:了解JVM的基本组成及其工作流程对于进行有效的性能调优至关重要。 - **内存区域划分**:JVM的内存被划分为不同的区域,如堆区、方法区、栈区等,每个区域都有其特定的功能和管理机制。 -...

    JAVA JVM性能调优监控工具详解

    ### JAVA JVM性能调优监控工具详解 在Java开发过程中,特别是在企业级应用中,经常会遇到各种性能瓶颈问题,如内存溢出(`OutOfMemoryError`)、内存泄露、线程死锁、锁争用等问题。这些问题如果不能及时有效地解决...

    visualvm 教程 介绍 性能调优

    VisualVM作为一款全面的性能分析工具,不仅简化了性能监控的过程,而且通过丰富的数据展示和分析功能,帮助开发者深入理解应用程序的运行状况,从而进行有效的性能调优。无论是在开发阶段的性能测试,还是在生产环境...

    JVM性能调优经典教程

    JVM性能调优是一项关键技术,旨在优化JVM的内存管理、垃圾收集、类加载等方面,以提升程序运行速度、减少内存占用并避免系统崩溃。本教程"JVM性能调优经典教程"由马士兵老师倾力讲解,旨在帮助Java开发者进阶,掌握...

    深入理解JVM性能调优和内存模型,垃圾回收,虚拟机原理,经典视频教程

    《深入理解JVM性能调优和内存模型,垃圾回收,虚拟机原理,经典视频教程》是一套详尽的教育资源,旨在帮助Java开发者深入探索Java虚拟机(JVM)的内部工作机制,提升性能优化的能力。本教程共包含110讲,内容丰富,适合...

    Java高并发编程与JVM性能调优实战 视频教程 下载下载因为太大存百度云盘4.zip

    《Java高并发编程与JVM性能调优实战》是一门深度探讨Java开发中高并发处理和JVM优化的视频教程。课程旨在帮助开发者提升在大规模并发环境下的编程能力,同时掌握JVM内部机制,实现高效的系统性能优化。通过学习本...

    jvm常用调优方式

    JVM 调优是一种非常重要的技术,它能够帮助我们提高 Java 应用程序的性能和稳定性。在这篇文章中,我们将探讨 JVM 调优的重要性和各种调优方式。 首先,需要注意的是,在对 JVM 内存调优的时候不能只看操作系统级别...

    JVM性能调优

    ### JVM性能调优 #### JVM概念与发展历程 ...通过上述的介绍,我们可以看到JVM性能调优不仅需要理论上的知识积累,还需要结合实际应用情况进行综合考虑。在实践中不断学习和摸索,才能真正掌握JVM性能调优的精髓。

    JVM性能调优垃圾收集算法虚拟机组成.zip

    本文将深入探讨JVM的组成、垃圾收集的基本概念及其常见算法,以及如何进行性能调优。 首先,JVM主要由以下几个部分组成: 1. **类装载器**:负责加载类文件,完成类的加载、验证、准备和初始化等工作。 2. **运行...

    Java高并发编程与JVM性能调优实战 视频教程 下载下载因为太大存百度云盘2.zip

    《Java高并发编程与JVM性能调优实战》是一门深度探讨Java开发中高并发处理和JVM优化的视频教程。课程旨在帮助开发者提升在大规模并发环境下的编程能力,同时掌握JVM性能优化技巧,以实现更高效、稳定的Java应用程序...

    JVM 监控 调优 工具

    在Java应用程序的开发和运行过程中,了解JVM的工作原理,监控其状态,以及进行性能调优是至关重要的。本文将深入探讨JVM内存结构、监控工具及其在调优和GC优化中的应用。 **JVM内存机构** JVM内存主要分为以下几个...

    JVM实战-JVM调优案例分析与MyEclipse性能调优实战

    ##### 步骤一:使用VisualVM进行MyEclipse性能调优 1. **启动VisualVM**:首先打开VisualVM工具,连接到正在运行的MyEclipse实例。 2. **监控资源使用情况**:通过VisualVM的监控功能观察MyEclipse的CPU使用率、...

    jvm性能调优-jvm内存模型和优化-performance-jvm-memorymodel-optimize.zip

    《JVM性能调优:深入理解JVM内存模型与优化》 在Java开发中,JVM(Java Virtual Machine)性能调优是提升应用程序效率的关键环节。JVM内存模型的理解和优化,对于解决性能瓶颈、避免内存泄漏以及提高系统稳定性至关...

    第04章 大促高并发系统下JVM如何调优指导01.pdf

    在高并发大促场景下,Java虚拟机(JVM)的性能调优是确保系统稳定运行的关键。JVM是Java程序的运行环境,负责管理内存、执行字节码等任务。本文将探讨架构师在面对高并发系统时应该如何进行JVM调优,以及对Java技术...

    使用visualvm工具进行tomcat性能调优和性能监控.docx

    使用 VisualVM 工具进行 Tomcat 性能调优和性能监控 本文主要介绍了如何使用 VisualVM 工具来进行 Tomcat 的性能调优和性能监控。下面将详细介绍相关知识点: 一、JDK 内存优化 在 Tomcat 中,默认的堆大小为 128...

    JVM参数调优及JAVA相关工具使用

    Java相关工具,如JConsole、VisualVM、JProfiler等,可以帮助监控和分析JVM的运行状态,包括内存使用、垃圾收集、线程和CPU负载等,从而辅助进行调优工作。 为了优化JVM性能,还可以调整其他参数,如-Xss控制线程栈...

    深入JVM和调优+高性能并发Web服务器实现核心内幕

    《深入JVM和调优+高性能并发Web服务器实现核心内幕》这一主题涵盖了Java开发中的关键领域,包括Java虚拟机(JVM)的工作原理、性能优化以及高性能并发Web服务器的实现策略。以下是对这些知识点的详细阐述: 1. **...

    深入理解Java虚拟机视频教程(jvm性能调优+内存模型+虚拟机原理)视频教程

    第61节性能调优-案例100:23:28分钟 | 第62节性能调优-案例200:10:05分钟 | 第63节性能调优-案例300:12:41分钟 | 第64节前半部分内容整体回顾00:15:41分钟 | 第65节Class文件简介和发展历史 [免费观看] 00:11:26...

    jvm性能调优

    ### JVM性能调优知识点 #### 一、JVM基础知识 **1.1 Hotspot堆 — JDK6** - **新生代 (Young Generation)**: 包括Eden区和两个Survivor区(S0/S1),大部分对象在此阶段创建并消亡。 - **老年代 (Old Generation)*...

Global site tag (gtag.js) - Google Analytics