`

J2EE应用性能瓶颈

阅读更多
一、J2EE应用常见性能瓶颈:

低效率的Servlet、JSP、EJB、Java类和方法
运行缓慢的SQL语句,低效率的EJB/DB交互
应用服务器配置和部署问题
RMI和对象串行问题
低效率的第三方组件
JVM 堆使用和配置问题
操作系统参数和配置
硬件模块限制
集群配置和负载平衡问题
二、性能管理方法论

J2EE应用性能的有效管理应该符合如下的思路,保证关键业务应用的最佳性能,实施有效的变化管理,优化变更管理流程。

1.前瞻性保障

首先,在应用开发阶段,通过有效手段和方法保证代码质量优化,最大程度地保证代码的性能和效率达到最优,并杜绝内存泄漏等潜在的危险代码。

其次,在应用部署上线阶段,通过压力测试、应用优化、配置调优等使应用运行在最佳状态。

在应用运行维护阶段,对生产系统运行状况和性能进行不间断的监控,及时发现对业务会产生影响的问题,并对历史状态进行分析,预测未来发展趋势,评估当前系统性能,确定是否存在潜在的问题,消除因为严重的性能问题对业务造成的不可弥补的影响,保证系统的可用性和高性能。

所有以上的各种措施和工作都是为了保障最终系统正常高效运行,将所有可能的问题避免和解决在问题发生之前,可以称之为“前瞻性保障”(ProActive)工作。

2.响应式管理

如果系统一旦出现异常,发生性能问题或由于业务增长出现性能瓶颈时,应对出现的情况,能迅速给予响应,则需要做到以下的要求:

首先出现问题后,能够快速识别问题的种类,定位问题的根源,深入诊断,并减少解决问题的时间,将影响和损失降到最低程度。

其次,对存在性能瓶颈的地方能提供有效的优化手段,能通过测试对系统给出性能评价视图,给出采取下一步措施的建议:一是通过优化提高对现有资源的利用,保护已有投资;二是当现有资源不能满足日益增长的业务的需要时,在充分优化的基础上进行适当扩展,消除性能瓶颈。

三、J2EE性能管理流程

为保障J2EE应用系统的高可用性和高性能,对系统开发、上线和运行等各个环节需要建立起包括问题发现、故障诊断、问题解决和日常维护等在内的完整的管理流程,并借助相关管理工具,实现管理职能。

问题发现

在开发阶段,需要测试和发现代码中的错误和性能问题;在上线前性能测试中,需要发现和评估组成业务的各关键组件的执行快慢问题,是否满足设计和业务需求,及时对有问题的组件进行修改或调整;

在运维时期,系统管理员需要借助相关的工具,发现和预测系统运行环境中主机、数据库、应用服务器和J2EE应用中可能出现的问题。管理内容包括主机及中间件、J2EE应用、相关的数据库实例管理等,具体操作包括对系统和数据库、应用服务器状态信息收集,以及相关性分析和门限值比较,并在此基础上判断系统目前的状况。

故障诊断

一旦发现问题或潜在的故障因素,管理人员需要借助相关工具进行深入的分析,确定产生这些问题的根本原因,能在所有系统组件和代码中进行深入诊断,分析哪一个服务或组件慢,分析过程中需要深入考查JAVA代码、SQL语句等诸多因素,通过管理工具提供的专业化智能化诊断方法快速判断问题。

问题解决

系统维护和管理员需要借助相应的管理工具解决问题,如SQL优化、Java代码优化等等。管理工具中内置的专家建议可以大大降低对管理人员的技能要求,提高工作效率。

综合以上内容,对J2EE应用性能进行有效管理应该贯穿在开发、测试、优化、上线、监控、诊断、修改调优、再监控等各个环节,并形成闭环结构的完整方法论,彻底解决J2EE应用的性能问题。

四、Quest解决方案:http://www.quest.com/application%5Fassurance、http://www.quest.com/performance_management/Quest针对这些情况相应地给出完整的J2EE应用性能优化管理解决方案,以便及时发现系统中存在的问题以及潜在的问题,并对J2EE应用(包括数据库)进行优化管理。基于Quest的产品建立发现问题,诊断问题、解决问题的管理方法。同时结合Quest Software的顾问服务,对J2EE系统进行全方位的优化,保证系统的高性能、高可用性。

Quest提供如下的相关工具:

JProbe:调优和测试工具,可对Java代码做内存泄漏(Memory Leaks)、数据竞争(Data Race)、性能瓶颈等的分析。
PerformaSure:Java应用性能监控和诊断工具,可基于用例对J2EE分布式系统进行全面的分析,包括J2EE应用服务器、Web服务器、数据库服务器、网络负载。

Foglight:实现应用系统管理,对构成应用系统的各个技术层次进行监控和分析。监控的内容包括网络设备、操作系统、数据库、J2EE中间件、Web服务器、客户端性能、应用业务等,为企业用户提供了一个完整的统一的性能管理平台。

优势主要从六个方面去看:

完整的应用性能和可用性管理解决方案:从开发、测试、验收、试运行和上线闭环的完整方案;

生产环境下7*24内存泄漏检测功能:Foglight在生产环境下可以发现各个URL的内存泄漏对象;

强大的数据库管理和SQL优化功能:与Quest数据库管理的产品集成很好,Quest在数据库管理方面的专业就不用我多说了;

独一无二的中间件实时监控和建议功能:Spotlight for WLS/WAS实时监控非常直观,而且提供专家级建议;

业界领先的企业级应用性能瓶颈诊断功能:PerformaSure用来诊断组件级瓶颈、方法级瓶颈、Portal瓶颈和SQL瓶颈非常简单、专业;

卓而不群的自动化内存泄漏规避和诊断功能:JProbe是业界公认的自动内存泄漏分析工具领头羊;

灵活自动的深度性能瓶颈分析功能:JProbe的性能瓶颈分析和线程死锁分析精确到代码行级。

分享到:
评论

相关推荐

    J2EE常见应用性能问题

    #### 一、J2EE应用性能问题概述 在早期,J2EE应用的性能优化并不高效,大多数应用并未通过先进的工具或方法进行调整。性能调整的关键在于获取相关测度数据,而这些数据在过去往往难以获取。随着技术的进步,新型的...

    J2EE应用性能调优.docx

    总结,J2EE应用性能调优是一个综合性的工程,涉及到硬件、网络、操作系统、J2EE容器、后台服务、前端以及JVM等多个层面的优化。每个层面的优化都有其独特的方法和策略,需要结合实际情况灵活运用,以实现整体性能的...

    使用PerformaSure进行J2EE性能监控及瓶颈分析

    5. **性能瓶颈分析**: - 通过收集和分析各种性能数据,PerformaSure能识别出系统中的瓶颈,可能是硬件资源不足、代码执行效率低或数据库查询问题等。 - 对于代码层面的问题,它能提供方法级别的调用链分析,定位...

    J2EE应用的性能调整--JPROBE使用篇.pdf

    【J2EE应用性能调整与JPROBE工具详解】 在J2EE开发环境中,性能优化是确保应用程序高效运行的关键步骤。JPROBE是一款强大的性能调优工具,它为Java开发者提供了一套全面的组件,包括JProbe Profiler、JProbe Memory...

    开发高性能j2ee应用, 最佳实践

    除了应用程序内部的因素外,还有一些外部因素可能限制系统的可扩展性,例如数据库的性能瓶颈、网络延迟等。解决这些问题通常需要从整体系统架构出发,考虑硬件配置、网络拓扑等因素。 #### 结论 开发高性能的J2EE...

    构建高性能J2EE应用的十个技巧

    1. **内存管理**:J2EE应用性能的基础在于如何有效地管理内存。减少对象创建次数有助于降低内存分配的压力,同时避免内存泄露和对象循环非常重要。游离对象(内存泄露)是由于对象不再使用但仍有引用导致的,应确保...

    J2EE性能测试

    总的来说,《J2EE性能测试》这本书为读者提供了一个全面的性能测试和优化指南,无论你是初级开发者还是经验丰富的架构师,都能从中受益,提升你的J2EE应用性能测试和优化能力。通过阅读这本书,你将学会如何利用The ...

    J2EE性能测试的培训资料

    2. **定位问题**:通过数据分析找出性能瓶颈,可能涉及数据库查询效率低、代码逻辑复杂、资源竞争或配置不当等方面。 3. **调优与优化**:针对发现的问题采取相应的优化措施,例如优化SQL查询、改进代码逻辑、增加...

    J2EE程序的性能优化技巧

    优化J2EE应用的基础始于优化Java代码。以下是一些关键点: 1. 使用`StringBuffer`或`StringBuilder`替代`String`连接:如上文所述,使用`+`操作符连接字符串会导致不必要的对象创建和内存消耗。`StringBuffer`和`...

    构建高性能J2EE应用的10个技巧

    ### 构建高性能J2EE应用的10个技巧详解 #### 一、Java性能的基础:内存管理 在探讨如何构建高性能的Java 2 Platform, Enterprise Edition (J2EE) 应用之前,理解Java应用如何高效管理内存至关重要。Java应用的性能...

    构建高性能J2EE应用的10个技巧xibu223

    10. **监控和调优**:持续监控应用性能,使用性能分析工具识别瓶颈,并进行针对性的调优。这包括JVM配置调整、数据库参数优化等。 以上这些技巧是构建高性能J2EE应用的关键步骤,但实际应用中还需要结合具体项目...

    J2EE性能优化.

    J2EE平台提供了多种服务,如Web容器、EJB容器、JMS、JPA等,而优化这些组件和它们之间的交互可以显著提升应用性能。以下是一些关键的J2EE性能优化策略: 1. **应用服务器配置优化**: - 调整线程池大小:根据系统...

    ExpertOneO

    8. **性能优化**:分析了J2EE应用性能瓶颈,提供了一些性能测试和调优的技巧,包括内存管理和线程池的使用。 9. **部署和测试**:讨论了部署描述符的配置,以及如何进行单元测试和集成测试,确保应用的稳定性和可靠...

Global site tag (gtag.js) - Google Analytics