一种正规的性能调优方法:基于等待的调优(一)

发表于:2009-03-27来源:作者:点击数: 标签:性能
企业 java 应用的性能调优是一项艰巨的、有时甚至是徒劳的任务,这是由现代应用的复杂性和缺少正规的调优方法导致的。现代企业应用与十年前的应用相比差距很大,如今这些应用支持多输入、多输出、复杂的框架和业务处理引擎。而十年之前,基于web的企业应用只
企业java应用的性能调优是一项艰巨的、有时甚至是徒劳的任务,这是由现代应用的复杂性和缺少正规的调优方法导致的。现代企业应用与十年前的应用相比差距很大,如今这些应用支持多输入、多输出、复杂的框架和业务处理引擎。而十年之前,基于web的企业应用只是通过网络浏览器获得输入信息,然后与数据库或者遗留系统交互进行后台处理,最后把输出结果返回给浏览器(HTML)。现在,输入信息可以来自HTML浏览器、富客户端、移动设备或者网络服务,它可以跨越运行在不同架构下的servlets或者门户容器,这反过来又可能调用企业bean,外部web服务或者把处理委托给业务规则引擎。每一个这样的组件都可能与内容管理系统、缓存层、众多数据库和遗留系统交互。输出的信息通常以独立于展现层的形式保存,随后转化为HTML、XML、WML或者其他任意客户端需要的格式。现代应用比过去包含更多移动部分和“黑盒子”,这对性能调优提出了巨大的挑战。

  除了复杂性提高,性能调优技术其艺术性要大于科学性,还因为大多数性能调优指南都侧重于性能指标,有时晦涩难懂,也可能影响用户体验。本文尝试把性能调优活动变成一种“科学”范畴内的行为,提供了一种可重用的关注用户体验的方法,利用“等待点”(也就是应用中引起某请求等待的部分)分析应用架构。总之,基于等待的调优方法允许性能工程师们通过优化用户体验快速实现可度量的性能提高。

  性能调优过程

  在详细介绍基于等待调优和等待点分析方法之前,本节首先对有效的性能调优过程做一个概述。性能调优可以简单的概括为四步:

  1.负载测试

  2.容器调优

  3.应用调优

  4.迭代

  像大多数计算机科学一样,性能调优是一个迭代的过程。首先,创建一个合适的负载测试,其中包含了均衡的、具有代表性的服务请求,这都是容器调优实践可以满足的。随着容器被不断调优和测试压力的增大,应用程序的瓶颈逐渐显现出来。随着应用的瓶颈被定位和解决,应用行为会发生变化,这就要求容器再次调优。在容器和应用之间的迭代过程会一直进行到性能到达可以接受的条件(或者直到项目已经到期必须发布时)。


原文转自:http://www.ltesting.net