《构建高性能WebSphere企业级应用》
分類: 图书,计算机/网络,软件工程/开发项目管理,
作者: 孙磊 等编著
出 版 社: 电子工业出版社
出版时间: 2008-5-1字数: 560000版次: 1页数: 421印刷时间: 2008/05/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787121063176包装: 平装编辑推荐
1.作者以自身实际参与自9WebSphe re电子商务应用系统为背景,重点讨论在构建高性台EWebSphe re企业级应用过程中,各个环节可能遇到的性能问题和解决方案。
2.从基本的原理到特定问题的处理细节,本书都有较为全面的介绍,作者提供了大量实用的性能优化技巧,以及多种性能相关工具的使用心得。对于WebSphe re企业级应用中常见的死锁问题、内存使用问题等,作者进行了独到的分析并提供了对应的解决方案。
3.在内容组织上注重理论联系实际,以实践经验分享为主。对于各种提高性能的原则或工具,重点介绍作者在实际开发、测试和维护工作中的具体使用经验,即作者在实际工作中的做法,以及为什么这样做。
4.读者对象:WebSphere应用系统的开发人员、测试人员、实施人员和系统维护人员。同时,本书也可以作为高校网络应用系统开发课程的教学参考书。
内容简介
本书主要讲述如何构建高性能的WebSphere企业级应用系统,在阐述与性能相关的概念的基础上,重点介绍作者在开发、测试和维护WebSphere应用系统过程中为提高系统性能所进行的探索,以及在解决实际性能问题过程中所积累的经验。
全书由三部分组成,第一部分综述篇介绍构建高性能WebSphere企业级应用的基本原理和相关概念。第二部分技术篇以WebSphere企业级应用的整个生命周期为主线,从架构、设计、开发、测试等多个环节来介绍与性能相关的理论和经验。第三部分实践篇分专题通过实例讨论如何解决WebSphere企业级应用中几个常见的性能问题,以及由此总结出来的提高系统性能的方案。
本书适用于有一定WebSphere应用开发、测试和系统维护项目经验的人员,也可以作为高等院校计算机相关专业学生的教学参考书。
作者简介
孙磊,北京大学计算机科学与技术系硕士,IBM中国软件开发中心高级软件工程师。2003年加入IBM中国开发中心至今,一直从事WebSphere企业级电子商务应用的测试和性能优化工作。兴趣包
括J2EE应用性能理论模型,富客户端程序性能优化等。
目录
第1部分 综述篇
第1章 性能与WebSphere企业级应用
1.1 WebSphere企业级应用
1.1.1 WebSphere应用
1.1.2 企业级应用
1.1.3 电子商务应用
1.2 性能问题
1.2.1 一个虚构的场景
1.2.2 性能问题的现象
1.2.3 性能问题的影响
1.2.4 性能相关概念
1.3 构建高性能WebSphere应用
1.3.1 WebSphere应用性能影响因素
1.3.2 性能与应用系统的生命周期
1.3.3 构建高性能应用的角色与任务
1.4 小结
第2章 基本性能指标与性能模型
2.1 性能指标
2.1.1 负载指标
2.1.2 运行指标
2.1.3 资源占用指标
2.1.4 各指标之间的关系
2.2 理论分析
2.2.1 理论模型与实际问题
2.2.2 实例分析:漏斗模型
2.3 缓存技术与性能模型
2.3.1 提升系统性能的途径
2.3.2 WebSphere动态高速缓存技术
2.3.3 动态高速缓存性能模型
2.3.4 WebSphere 6.1对动态高速缓存的改进
2.4 小结
第2部分 技术篇
第3章 WebSphere应用性能规划
3.1 性能规划的一般过程
3.1.1 理解应用环境
3.1.2 系统负载分析
3.1.3 软件结构中的性能设计
3.1.4 硬件结构中的性能设计
3.2 拓扑结构设计
3.2.1 WebSphere应用拓扑结构
3.2.2 实例分析:电子商务应用拓扑结构设计
3.3 系统容量规划
3.3.1 容量规划的范围
3.3.2 CPU容量规划的理论模型
3.3.3 实例分析:电子商务应用容量规划
3.4 小结
第4章 WebSphere高性能编程
4.1 MVC结构与高性能编程
4.1.1 MVC结构
4.1.2 电子商务应用分层结构
4.1.3 提高性能的一般原则
4.2 控制层
4.2.1 一般性建议
4.2.2 电子商务应用最佳实践
4.3 模型层
4.3.1 一般性建议
4.3.2 电子商务应用最佳实践
4.4 视图层
4.5 其他最佳实践
4.5.1 内存使用
4.5.2 数据软删除
4.5.3 缓存与滞后取
4.5.4 数据库编程
4.6 小结
第5章 WebSphere应用性能测试
5.1 性能测试概述
5.1.1 性能测试的一般方法
5.1.2 性能测试的一般流程
5.2 电子商务应用性能测试
5.2.1 制定测试计划
5.2.2 执行测试
5.2.3 管理测试资产
5.2.4 常见问题处理
5.3 性能测试工具
5.3.1 常见性能测试工具
5.3.2 选择负载测试工具
5.3.3 测试工具发展趋势
5.4 小结
第6章 企业级应用性能监视
6.1 性能监视概述
6.1.1 监视对象与监视策略
6.1.2 监视级别
6.2 操作系统监视
6.2.1 nmon
6.2.2 top和topas
6.2.3 vmstat和iostat
6.2.4 typeperf
6.2.5 zVM监视
6.3 WebSphere应用服务器监视
6.3.1 Tivoli性能查看器
6.3.2 高速缓存监视器
6.4 数据库服务器监视
6.4.1 DB2性能监视
6.4.2 Oracle监视
6.5 生产环境性能监视
6.5.1 Tivoli产品家族
6.5.2 ITCAM监视工具
6.6 小结
第7章 性能问题分析与诊断
7.1 性能问题诊断的一般过程
7.1.1 自顶向下分析与自底向上分析
7.1.2 电子商务应用的问题诊断过程
7.2 WebSphere应用日志分析
7.2.1 Web服务器日志
7.2.2 应用服务器日志
7.2.3 数据库服务器日志
7.2.4 日志分析工具
7.3 WebSphere应用程序运行剖析
7.3.1 Heap分析
7.3.2 JInsight
7.3.3 TPTP分析平台
7.3.4 ITCAM
7.4 小结
第8章 WebSphere应用性能参数调优
8.1 参数调优概述
8.1.1 一般过程
8.1.2 基本原则
8.1.3 参数调优与性能测试
8.2 电子商务应用经验参数
8.2.1 操作系统调优参数
8.2.2 Web服务器调优参数
8.2.3 数据库服务器调优参数
8.2.4 应用服务器调优参数
8.2.5 硬件配置
8.3 性能参数调优实例介绍
8.4 小结
第3部分 实践篇
第9章 死锁问题实例分析
9.1 死锁的原理
9.1.1 抽象死锁原理
9.1.2 DB2锁管理机制
9.2 死锁问题处理的一般过程
9.2.1 发现死锁
9.2.2 解决死锁
9.3 常见死锁问题处理实例
9.3.1 RUNSTATS
9.3.2 缺少索引
9.3.3 SQL语句不合理
9.3.4 资源访问顺序问题
9.3.5 隔离级别问题
9.3.6 意外更新记录
9.4 小结
第10章 内存使用问题实例分析
10.1 WebSphere内存管理
10.1.1 Java虚拟机与垃圾回收机制
10.1.2 WebSphere应用中的JVM内存管理
10.2 WebSphere内存问题分析
10.2.1 内存问题分析的一般过程
10.2.2 垃圾回收分析工具
10.3 常见内存问题实例
10.3.1 JVM堆大小问题
10.3.2 固定对象问题
10.3.3 大对象问题
10.3.4 缓存大小问题
10.3.5 内存泄漏问题
10.4 小结
第11章 性能下降问题实例分析
11.1 性能下降问题
11.1.1 常见现象和产生原因
11.1.2 分析和解决过程
11.2 自顶向下分析实例
11.2.1 问题背景
11.2.2 自顶向下分析过程
11.3 数据库引起的性能下降问题实例
11.3.1 问题背景
11.3.2 分析与解决过程
11.4 小结
第12章 动态高速缓存实例分析
12.1 动态高速缓存设计
12.1.1 基本缓存策略
12.1.2 整页缓存与片段缓存
12.1.3 命令缓存
12.1.4 磁盘缓存
12.1.5 外部缓存
12.1.6 失效处理
12.1.7 缓存复制
12.2 实例分析:B2C网站动态高速缓存的设计与实现
12.2.1 缓存需求分析
12.2.2 整页缓存:产品目录页
12.2.3 片段缓存:迷你购物车
12.2.4 命令缓存:组织查询
12.2.5 缓存配置参数设计
12.2.6 缓存部署与验证
12.2.7 缓存预加载机制
12.3 动态高速缓存常见问题处理
12.3.1 页面内容重复
12.3.2 缓存内容错误
12.3.3 JVM内存不足
12.3.4 磁盘I/O导致性能下降
12.4 小结
附录A 测试工具介绍
附录B 操作系统监视工具介绍
附录C 动态高速缓存辅助资料
参考文献
术语表
书摘插图
第1部分 综述篇
第1章 性能与WebSphere企业级应用
1.1 WebSphere企业级应用
1.1.2 企业级应用
许多软件产品都有企业版(Enterprise Edition)或商业版(Business Edition),以区别于专业版(Professional Edition)或标准版(Standard Edition)。不同的产品有不同的版本定位策略,各个版本之间的差别也没有一个统一的标准。但一般而言,企业版或商业版都是整个产品线中最高级别的版本。
本书题目中的企业级应用(Enterprise Application)也是指与一般的中小型或非商业应用相区别的应用,而不是泛指使用Java 2企业版(Java 2 Enterprise Edition)技术构建的应用。本书所特指的企业级应用,通常都为大中型企业维持生产运行提供服务。中断这些应用系统的正常运行,对整个企业的营业利润会造成巨大的影响,所以,对企业级应用的各方面都有严格的要求。比如安全性,企业级应用的数据通常都是企业的核心业务数据,对这些核心业务数据的非法访问可能为企业带来非常严重的损失。又比如数据准确性和完整性,对某些重要交易数据的错误处理可能带来包括法律诉讼在内的严重后果。此外,最常见、也是本书想强调的就是对性能的严格要求。
在澄清有关性能的具体概念之前,这里先对企业级应用的性能需求进行一些感性的描述。
首先,企业级应用往往需要承担很大规模的业务负载。以作者参与的某个电子商务应用系统为例,该系统有四百万用户定期访问,平均每小时要处理三百万次Web页面访问。比这更大的业务负载在企业级应用中也很常见。
其次,企业级应用的运行往往支撑着企业的核心业务,所以,要求应用程序能够提供7乘24小时的不间断服务。
……