第1部分 综述篇 2
第1章 性能与WebSphere企业级应用 2
1.1 WebSphere企业级应用 3
1.1.1 WebSphere应用 3
1.1.2 企业级应用 4
1.1.3 电子商务应用 5
1.2 性能问题 7
1.2.1 一个虚构的场景 7
1.2.2 性能问题的现象 9
1.2.3 性能问题的影响 12
1.2.4 性能相关概念 13
1.3 构建高性能WebSphere应用 15
1.3.1 WebSphere应用性能影响因素 15
1.3.2 性能与应用系统的生命周期 17
1.3.3 构建高性能应用的角色与任务 18
1.4 小结 20
第2章 基本性能指标与性能模型 21
2.1 性能指标 22
2.1.1 负载指标 22
2.1.2 运行指标 24
2.1.3 资源占用指标 29
2.1.4 各指标之间的关系 30
2.2 理论分析 36
2.2.1 理论模型与实际问题 36
2.2.2 实例分析:漏斗模型 40
2.3 缓存技术与性能模型 42
2.3.1 提升系统性能的途径 42
2.3.2 WebSphere动态高速缓存技术 44
2.3.3 动态高速缓存性能模型 46
2.3.4 WebSphere 6.1对动态高速缓存的改进 49
2.4 小结 50
第2部分 技术篇 52
第3章 WebSphere应用性能规划 52
3.1 性能规划的一般过程 53
3.1.1 理解应用环境 53
3.1.2 系统负载分析 55
3.1.3 软件结构中的性能设计 57
3.1.4 硬件结构中的性能设计 58
3.2 拓扑结构设计 59
3.2.1 WebSphere应用拓扑结构 59
3.2.2 实例分析:电子商务应用拓扑结构设计 61
3.3 系统容量规划 63
3.3.1 容量规划的范围 63
3.3.2 CPU容量规划的理论模型 66
3.3.3 实例分析:电子商务应用容量规划 67
3.4 小结 73
第4章 WebSphere高性能编程 74
4.1 MVC结构与高性能编程 75
4.1.1 MVC结构 75
4.1.2 电子商务应用分层结构 76
4.1.3 提高性能的一般原则 78
4.2 控制层 80
4.2.1 一般性建议 80
4.2.2 电子商务应用最佳实践 81
4.3 模型层 82
4.3.1 一般性建议 83
4.3.2 电子商务应用最佳实践 89
4.4 视图层 94
4.5 其他最佳实践 96
4.5.1 内存使用 96
4.5.2 数据软删除 100
4.5.3 缓存与滞后取 102
4.5.4 数据库编程 104
4.6 小结 106
第5章 WebSphere应用性能测试 107
5.1 性能测试概述 108
5.1.1 性能测试的一般方法 108
5.1.2 性能测试的一般流程 110
5.2 电子商务应用性能测试 112
5.2.1 制定测试计划 112
5.2.2 执行测试 119
5.2.3 管理测试资产 128
5.2.4 常见问题处理 131
5.3 性能测试工具 134
5.3.1 常见性能测试工具 134
5.3.2 选择负载测试工具 138
5.3.3 测试工具发展趋势 139
5.4 小结 140
第6章 企业级应用性能监视 141
6.1 性能监视概述 142
6.1.1 监视对象与监视策略 142
6.1.2 监视级别 145
6.2 操作系统监视 146
6.2.1 nmon 146
6.2.2 top和topas 151
6.2.3 vmstat和iostat 152
6.2.4 typeperf 154
6.2.5 zVM监视 155
6.3 WebSphere应用服务器监视 156
6.3.1 Tivoli性能查看器 156
6.3.2 高速缓存监视器 159
6.4 数据库服务器监视 162
6.4.1 DB2性能监视 163
6.4.2 Oracle监视 171
6.5 生产环境性能监视 173
6.5.1 Tivoli产品家族 173
6.5.2 ITCAM监视工具 174
6.6 小结 179
第7章 性能问题分析与诊断 180
7.1 性能问题诊断的一般过程 181
7.1.1 自顶向下分析与自底向上分析 181
7.1.2 电子商务应用的问题诊断过程 183
7.2 WebSphere应用日志分析 184
7.2.1 Web服务器日志 185
7.2.2 应用服务器日志 187
7.2.3 数据库服务器日志 190
7.2.4 日志分析工具 191
7.3 WebSphere应用程序运行剖析 194
7.3.1 Heap分析 194
7.3.2 JInsight 195
7.3.3 TPTP分析平台 196
7.3.4 ITCAM 200
7.4 小结 200
第8章 WebSphere应用性能参数调优 201
8.1 参数调优概述 202
8.1.1 一般过程 202
8.1.2 基本原则 204
8.1.3 参数调优与性能测试 205
8.2 电子商务应用经验参数 207
8.2.1 操作系统调优参数 207
8.2.2 Web服务器调优参数 215
8.2.3 数据库服务器调优参数 222
8.2.4 应用服务器调优参数 232
8.2.5 硬件配置 240
8.3 性能参数调优实例介绍 241
8.4 小结 247
第3部分 实践篇 250
第9章 死锁问题实例分析 250
9.1 死锁的原理 251
9.1.1 抽象死锁原理 251
9.1.2 DB2锁管理机制 253
9.2 死锁问题处理的一般过程 255
9.2.1 发现死锁 255
9.2.2 解决死锁 262
9.3 常见死锁问题处理实例 264
9.3.1 RUNSTATS 264
9.3.2 缺少索引 266
9.3.3 SQL语句不合理 268
9.3.4 资源访问顺序问题 271
9.3.5 隔离级别问题 272
9.3.6 意外更新记录 274
9.4 小结 278
第10章 内存使用问题实例分析 279
10.1 WebSphere内存管理 280
10.1.1 Java虚拟机与垃圾回收机制 280
10.1.2 WebSphere应用中的JVM内存管理 282
10.2 WebSphere内存问题分析 284
10.2.1 内存问题分析的一般过程 284
10.2.2 垃圾回收分析工具 288
10.3 常见内存问题实例 290
10.3.1 JVM堆大小问题 291
10.3.2 固定对象问题 292
10.3.3 大对象问题 294
10.3.4 缓存大小问题 297
10.3.5 内存泄漏问题 299
10.4 小结 300
第11章 性能下降问题实例分析 301
11.1 性能下降问题 302
11.1.1 常见现象和产生原因 302
11.1.2 分析和解决过程 304
11.2 自顶向下分析实例 308
11.2.1 问题背景 308
11.2.2 自顶向下分析过程 309
11.3 数据库引起的性能下降问题实例 313
11.3.1 问题背景 313
11.3.2 分析与解决过程 314
11.4 小结 324
第12章 动态高速缓存实例分析 325
12.1 动态高速缓存设计 326
12.1.1 基本缓存策略 326
12.1.2 整页缓存与片段缓存 327
12.1.3 命令缓存 330
12.1.4 磁盘缓存 331
12.1.5 外部缓存 333
12.1.6 失效处理 335
12.1.7 缓存复制 336
12.2 实例分析:B2C网站动态高速缓存的设计与实现 338
12.2.1 缓存需求分析 338
12.2.2 整页缓存:产品目录页 339
12.2.3 片段缓存:迷你购物车 342
12.2.4 命令缓存:组织查询 345
12.2.5 缓存配置参数设计 347
12.2.6 缓存部署与验证 349
12.2.7 缓存预加载机制 352
12.3 动态高速缓存常见问题处理 352
12.3.1 页面内容重复 353
12.3.2 缓存内容错误 353
12.3.3 JVM内存不足 354
12.3.4 磁盘I/O导致性能下降 355
12.4 小结 357
附录A 测试工具介绍 358
附录B 操作系统监视工具介绍 373
附录C 动态高速缓存辅助资料 391
参考文献 417
术语表 418