公司有一个老的营销系统,是基于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性能调整的工作有个不懒的结果。^_^
分享到:
相关推荐
java性能调优大全,内置了较全的资料: visualVM使用 JVM性能调优,典型配置,JVM启动配置。 OMM的场景 jstat详解 性能分析工具比对 内存溢出解决方法。
NULL 博文链接:https://xq0804200134.iteye.com/blog/1810958
使用visualvm工具进行tomcat性能调优和性能监控.docx
第61节性能调优-案例100:23:28分钟 | 第62节性能调优-案例200:10:05分钟 | 第63节性能调优-案例300:12:41分钟 | 第64节前半部分内容整体回顾00:15:41分钟 | 第65节Class文件简介和发展历史 [免费观看] 00:11:26...
visualvm监控jvm及远程jvm监控方法
visualVM 性能调优 参数详细说明
针对jvm参数进行调优,针对堆栈信息进行dump,使用visualVm查看-JvmTest
visualVM,放到%JAVA_HOME%\bin目录下即可。
主要介绍了idea中安装VisualVM监控jvm的教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
JVM性能监控方法之visualVM1
visualvm_201是jvm调优的一个测试工具
目 录 1 表格列表 2 一、 JVM工具 2 1. jps:虚拟机进程状况工具 2 2. jstat:虚拟机统计信息监视工具 2 3. jinfo:java配置信息工具 3 ...表格 2 JVM调优参数 4 表格 3 行为参数 5 表格 4 JVM启动参数 6 一、
VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。这些功能包括生成和分析海量数据、跟踪内存泄漏、...VisualVM 进行性能分析及调优。
TDA-visualVM插件及性能优化方法.zip 内附性能优化截图,大神分享,继续发扬。感谢大神
JVM性能监控工具VisualVM Jconsole插件所需jar包 JTop.jar 点击'JConsole Plugins'按钮 点击'Add JAR/Folder'按钮, 添加JDK_HOME/demo/management/JTop/JTop.jar7)重新打开监控页面,可以看到JConsole
VisualVM 是一款免费的\集成了多个JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。
下面小编就为大家带来一篇Java VisualVM监控远程JVM(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
可视化性能监控工具VisualVM
3.对Java虚拟机、JMM、垃圾收集机制、GC算法、JVM常用配置参数、GC参数、classLoader、锁机制、JVM故障分析,jmap,jstack等jdk提供的工具命令,性能监控工具(java visualVM),JVM参数调优有一定了解; 4.熟悉java...
VisualVM 提供在 Java 虚拟机 (Java Virutal Machine, JVM) 上运行的 Java 应用程序的详细信息。在 VisualVM 的图形用户界面中,您可以方便、快捷地查看多个 Java 应用程序的相关信息。