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的性能瓶颈分析和线程死锁分析精确到代码行级。

你可能感兴趣的:(性能调优)