简介
IBM WebSphere Application Server 是一种可靠的企业级应用服务器,它提供了一组核心组件、资源和服务,供开发人员在应用程序中使用。每个应用程序都具备特有的需求,并且经常采用截然不同的方式使用应用服务器的资源。为了提供高度灵活性并支持这种广泛的应用程序,WebSphere Application Server 提供了一组全面的参数来帮助您增强对应用程序的调优。
应用服务器已经为最常用的调优参数设置了默认值,以确保能为最广泛的应用程序提供开箱即用的性能改善。但是,由于任意两个应用程序都不可能采用完全相同的方式来使用应用服务器,因此无法确保一组调优参数能适用于所有应用程序。这也突显了对应用程序执行有重点的性能测试和调优的重要性。
本文将讨论在 WebSphere Application Server V7.0(和之前发行版)中最常使用的一些参数,以及对它们进行调优的方法。与其他相关文章提供的调优建议不同,本文将使用 Apache DayTrader Performance Benchmark Sample 案例研究作为本文的上下文。借助 DayTrader 应用程序,您可以清楚地确定所使用的主要服务器组件,对这些区域进行重点调优,并观察各种调优更改所带来的收益。
在继续阅读之前,需要记住关于应用服务器性能调优的一些事项:
提高性能经常会牺牲应用程序或应用服务器的一些特性或功能。在计算性能调优更改时应该仔细考虑性能和特性之间的权衡。
应用服务器之外的一些因素有时会影响性能,包括硬件和操作系统配置、系统中运行的进程、后端数据库资源的性能、网络延迟等等。您在自己执行性能评估时,必须将这些因素考虑在内。
此处讨论的性能改善仅针对 DayTrader 应用程序,并且特定于此处描述的工作负载组成及所支持的硬件和软件栈。您通过本文介绍的调优更改实现的应用程序性能提升肯定会有所不同,并且应该通过您自己的性能测试进行评估。
DayTrader 应用程序
Apache DayTrader Performance Benchmark Sample 应用程序模拟了一个简单的股票交易系统,它允许用户登录/注销、查看股票组合、查询股票报价、交易股票以及管理帐户信息。DayTrader 不仅是一个优秀的功能测试应用程序,还提供了一组标准的工作负载,用于描述和测量应用服务器和组件级性能。DayTrader(以及它所依托的由 IBM 开发的 Trade Performance Benchmark Sample 应用程序)的初衷并非提供最佳性能,而是对应用服务器发行版和备选实现样式、模式进行比较。
DayTrader 基于一组核心 Java Enterprise Edition (Java EE) 技术,包括用于表示层的 Java servlets 和 JavaServer Pages (JSPs)、Java 数据库连接 (JDBC)、Java Message Service (JMS)、Enterprise JavaBeans (EJBs) 以及用于后端业务逻辑和持久层的消息驱动 beans (MDBs)。图 1 提供了应用程序体系结构的高级视图。
图 1. DayTrader 应用程序视图