1. JRockit简介
Jrockit是Bea开发的符合JAVA虚拟机规范的虚拟机+虚拟机监控软件。
虚拟机:Jrockit Real Time
监控软件:Jrockit Mission Control
Jrockit Real Time与SUN的JDK是完全兼容的,也就是说以前在SUN的虚拟机上跑的程序,在Jrockit Real Time上不会出现任何问题。
以前这套软件只提供1个小时的免费监控时间。就是说虚拟机启动1个小时内监控软件可以连上,过了一个小时就连不上了。这对一天才泄漏20M的应用程序来说,没有什么意义。现在已经完全免费了。这是开发者的福音。
最重要的,Jrockit是目前作者尝试过的,唯一一套可以在生产环境中进行内存监控的软件,其他软件都会严重降低虚拟机的效率应用基本无法使用。因为内存泄漏有时就算在压力测试中也很难发现。大部分都是在生产环境中产生的。如果没有一个基本不影响运行效率的软件,想解决只能靠运气。以前我解决过一次JAVA内存泄漏的问题,将程序从WEBLOGIC迁移到TOMCAT上解决了决完全属于运气。现在有了这个工具,解决起来就非常方便了。
2. 下载JRockit3.1.0,并安装
下载地址:http://www.oracle.com/technology/software/products/jrockit/index.html
要同时下载Jrockit Mission Control 3.1.0(监控软件)和Jrockit Real Time 3.1.0(虚拟机)
3. 服务器端配置
1. 在服务器段安装Jrockit Real Time 3.1.0,
2. 设置应用程序,使用此Jrockit启动应用程序。
Tomcat 6的设置方法是:
在catalina.sh顶部加入
JAVA_OPTS=" -verbosegc -Dcom.sun.management.jmxremote.port=7091 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=本机IP "和
JRE_HOME="Jrockit虚拟机路径"
将JRE_HOME改为JAVA_HOME也行。
3. 下载http://download2.bea.com/pub/license/All%20Products/BEA_WebLogic.zip,解压后将其中的LIC-WLRT20.txt文件改名为license.bea上传到%JROCKIT_HOME%/jre/下。
4. 监控端设置
首先安装Jrockit Mission Control 3.1.0,然后运行之。
在JVM浏览器视图中,对连接器文件夹右键,选择新建连接。弹出下图:

在“主机”处输入IP,服务器开放的端口已经是7091,所以不必修改。其他的不用动。点击“测试连接”状态如果是确定则代表已经连接。点击Finish保存新建的连接。在“连接器”文件夹新建了一个连接。
5. 开始监控内存
在新建的连接器上点击右键,选择“启动Memleak”,如图:
IMG

弹出内存泄露检测器,如图:
IMG

最先看见的是“趋势”选项卡,里边标注了占用JAVA堆大于0.1%的类和数组。
“类型”选项卡,显示了类型与类型之间的引用情况。
“实例”选项卡,显示了实例之间的引用情况。
“分配堆栈跟踪”选项卡,显示了指定类型在虚拟机运行过程中被使用的情况。
6. 实战
公司的一个JAVA应用系统上线以来,基本每1天OutOfMemory一次。JAVA堆上限1个G。
6.1 10点45分内存使用情况抓屏(趋势选项卡)
注:抓屏前都进行了完全的垃圾回收。
IMG

6.2 13点17分内存使用情况抓屏
IMG

6.3 结论
占用内存最高的类为:
edu.emory.mathcs.java.util.concurrent.ConcurrentHashMap$Segment
此类从10点多的95M涨到13点的129M。没有释放内存。此类引起内存泄露。
edu.emory.mathcs属于backport-util-concurrent开源项目。用于线程并发编程。属于java.util.concurrent包的另一个实现。
7. 堆栈分配跟踪
知道是那个类出了问题,然后就需要知道系统中都那些类使用了这个问题。在edu.emory.mathcs.java.util.concurrent.ConcurrentHashMap$Segment上右键,选择“显示分配跟踪”,进入“分配堆栈跟踪”选项卡,
跟踪一段时间如图:
IMG

此时就会发现,使用backport-util-concurrent的是AXIS2,使用AXIS2的是我们项目里的文件,并且里边已经标注了堆栈(包名.类名.方法名(文件名:行数) ),这样就知道那里出现问题,对症下药就能够解决了。去修改代码吧。HOHO~
相关推荐
4. **JRockit诊断工具**:介绍JRockit Mission Control等诊断工具的使用,包括性能监控、内存泄漏检测、线程分析等功能,帮助开发者快速定位和解决问题。 5. **JRockit性能调优**:提供实战性的性能调优技巧,包括...
可以通过工具如VisualVM等来检测内存使用情况,找出内存泄漏的原因。 - **GC问题**: 垃圾回收(GC)是JVM自动管理内存的重要机制,但如果配置不当,可能会导致频繁的GC暂停,严重影响应用的响应时间。通过调整JVM参数...
这次性能调优实战记录展示了从日志分析、内存监控、代码优化到JVM选择等一系列步骤,强调了在性能优化过程中,理解系统行为、定位问题源头、选择合适的工具以及不断迭代改进的重要性。对于从事性能测试和调优的...
8. **监控与诊断**:介绍如何使用JMX(Java Management Extensions)和WebLogic Diagnostics Framework进行服务器监控和问题诊断,包括日志分析、JVM内存泄漏检测和性能指标监控。 9. **集成与扩展**:可能涉及与...
实训商业源码-叮咚-门店会员卡小程序4.8.2开源-论文模板.zip
毕业设计-酒桌小程序-整站商业源码.zip
毕业设计-多商家营销活动平台1.8.3 开源版-整站商业源码.zip
毕业论文-我买单联盟版小程序V5.16.2 开源版 前端+后端-整站商业源码.zip
内容概要:本文探讨了基于MATLAB+CPLEX平台的双层优化电动汽车优化调度策略。研究分为两部分:输电网上层优化和配电网下层优化。上层优化旨在通过协调电动汽车、发电机和基本负荷,结合风力发电的影响,优化电动汽车的负荷周期;下层优化则聚焦于在空间上调度电动汽车的负荷位置。文中详细介绍了选址定容、输配协同和时空优化的方法,并通过仿真验证了模型的有效性和创新性。 适合人群:对电力系统优化、智能电网和电动汽车调度感兴趣的科研人员和技术开发者。 使用场景及目标:适用于需要优化电动汽车充放电行为的研究项目,特别是在考虑风力发电因素的情况下。目标是提高电网的运行效率和供需平衡。 其他说明:该研究提供了详细的代码实现和清晰的注释,便于复现和进一步扩展。仿真平台MATLAB+CPLEX具有强大的计算能力,适合处理复杂优化问题。
毕业设计-淡绿唯美小说网站源码-整站商业源码.zip
实训商业源码-灵石AI识别大全V2.0.1小程序+前端-论文模板.zip
毕业设计-付费阅读5.4.5 开源版-整站商业源码.zip
数据0512数据数据数据
内容概要:本文档详细介绍了如何在Matlab Simulink平台上构建双馈风力发电机(DFIG)的模型,并对其在外来干扰条件下的性能进行深入分析。首先,文档讲解了DFIG的基本参数设定方法及其重要性,强调了参数如定子电阻、转子电阻、互感等对仿真结果的影响。接着,探讨了控制器的设计,尤其是PWM调制器的开关频率和死区时间的正确配置。然后,针对电网电压骤降的情况进行了干扰测试,展示了电压跌落对电磁转矩和功率波动的具体影响,并指出了可能存在的问题以及解决办法。最后,分享了一些提高仿真的速度技巧,如选择合适的求解器和优化仿真参数的方法。 适合人群:从事风力发电系统设计、仿真和优化的研究人员和技术工程师。 使用场景及目标:适用于需要评估DFIG在不同运行条件下表现的研究项目,旨在提升系统的稳定性和可靠性。 其他说明:文中提供了具体的MATLAB代码片段用于指导实际操作,帮助读者更好地理解和应用所介绍的技术细节。
毕业论文-最新仿28在线客服系统商业版源码php+mysql版-整站商业源码.zip
内容概要:本文详细介绍了元胞自动机在模拟增材制造微观组织中的枝晶生长的应用,特别是柱状晶和等轴晶的模拟。首先解释了元胞自动机的基本概念,即一种由多个‘元胞’组成的离散模型,每个元胞按时间步长更新状态。接着讨论了枝晶生长的现象及其模拟方法,强调了通过设定不同的物理和化学属性来模拟枝晶的形态变化和生长过程。然后具体阐述了如何在Matlab中实现这一模拟,包括设定元胞的初始状态、更新规则和环境因素。最后,文章分析了模拟结果,探讨了不同条件(如温度、浓度、压力)对枝晶生长的影响,并指出元胞自动机模拟为优化材料性能和制造过程提供了重要的理论支持。 适合人群:材料科学家、冶金工程师、从事增材制造的研究人员和技术人员。 使用场景及目标:①理解元胞自动机的工作原理及其在材料科学研究中的应用;②掌握如何使用Matlab进行枝晶生长的模拟实验;③通过模拟结果优化增材制造工艺,提高材料性能。 其他说明:本文不仅提供了详细的理论背景,还附带了具体的代码片段,有助于读者理解和实践元胞自动机模拟的具体操作流程。
实训商业源码-帝国cms7.5 7.2 UTF-8移动端同步插件-酷网站-论文模板.zip
内容概要:本文介绍了Matlab在阵列OAM(轨道角动量阵列)和拉盖尔高阶模式中的应用。首先概述了阵列OAM的概念及其在光通信、光束操控和微粒操控等领域的应用前景。接着解释了拉盖尔高阶模式的基本概念以及其在波动学中的重要性。然后详细阐述了Matlab在这两个领域的具体应用,如利用Matlab的数值计算能力和信号处理工具箱进行阵列OAM的模拟和优化,以及用Matlab求解拉盖尔函数并模拟高阶拉盖尔模式的光场分布。最后展示了简单的Matlab代码片段,演示了阵列OAM的生成过程。 适合人群:对光学、物理学感兴趣的科研工作者和技术爱好者,特别是那些希望深入了解Matlab在高级光学现象建模方面应用的人群。 使用场景及目标:适用于从事光通信、光束操控和微粒操控等相关领域的研究人员,旨在帮助他们更好地理解和应用Matlab进行科学研究和技术开发。 其他说明:文中提供的代码片段仅为示例,在实际研究中可能需要更为复杂和精确的模型和算法。但Matlab的强大功能使其成为处理这类复杂任务的理想选择。
毕业论文-无后台版-整站商业源码.zip
嵌入式系统8ARM程序的调试分析解析.pptx