Contents 目 录
译者序
前 言
第1章 大规模Java平台简介1
1.1 大规模Java平台的分类1
1.2 大规模Java平台的趋势与需求2
1.2.1 计算资源合并2
1.2.2 JVM实例合并2
1.2.3 弹性与灵活性3
1.2.4 性能3
1.3 大规模Java平台的技术因素3
1.3.1 Java平台在理论和实际中的限制3
1.3.2 NUMA7
1.3.3 在生产环境中,最为常见的JVM规模13
1.3.4 JVM和VM的水平扩展与垂直扩展13
1.4 本章小结17
第2章 现代化可扩展的数据平台18
2.1 SQLFire的拓扑结构20
2.1.1 客户端/服务器拓扑结构21
2.1.2 端到端拓扑结构23
2.1.3 冗余区23
2.1.4 全球的多点拓扑结构23
2.2 SQLFire特性25
2.2.1 服务器分组27
2.2.2 分区29
2.2.3 冗余31
2.2.4 位置协同32
2.2.5 磁盘持久化33
2.2.6 事务35
2.2.7 缓存插件39
2.2.8 监听器41
2.2.9 writer43
2.2.10 异步监听器44
2.2.11 DBSynchronizer46
2.2.12 SQLF命令与DDLUtils48
2.3 Active-Active架构与现代化数据平台 49
2.4 本章小结52
第3章 大规模Java平台调优53
3.1 GC调优方法58
3.1.1 步骤A:新生代调优58
3.1.2 步骤B:老年代调优62
3.1.3 步骤C:Survivor 空间调优63
3.2 本章小结65
第4章 设计和划分大规模Java平台66
4.1 为虚拟化大规模Java平台设计和划分新环境66
4.1.1 步骤1:建立生产环境下的负载Profile67
4.1.2 步骤2:建立基准67
4.1.3 步骤3:划分生产环境77
4.2 划分vFabric SQLFire Java平台:第二类工作负载78
4.2.1 步骤A:确定实体分组78
4.2.2 步骤B:确定数据Fabric的内存大小81
4.2.3 步骤C:确定模板VM和JVM的大小以及所需的vFabric SQLFire成员数量84
4.2.4 理解HotSpot JVM内部的内存分区 85
4.2.5 理解划分大型VM和JVM时NUMA的影响86
4.2.6 vFabric SQLFire大小划分样例90
4.3 本章小结96
第5章 性能研究97
5.1SQLFire和RDBMS性能研究97
5.1.1性能结果98
5.1.2 结果总结 101
5.2 Olio工作负载运行在tc Server和vSphere上的性能研究101
5.3 SpringTrader性能研究105
5.3.1vSphere应用层和数据层配置107
5.3.2 SpringTrader性能研究结果 110
5.4 ESXi 3、ESXi 4.1和ESXi 5的性能差异111
5.4.1CPU调度改进 111
5.4.2内存增强112
5.5vSphere 5性能提升113
5.6 本章小结114
第6章 最佳实践115
6.1vSphere上企业级Java应用的最佳实践(第一类)117
6.1.1VM规模大小以及配置的最佳实践117
6.1.2VM vCPU的最佳实践118
6.1.3 VM内存划分的最佳实践119
6.1.4 VM时间同步最佳实践122
6.1.5 垂直扩展性的最佳实践122
6.2 水平可扩展性、集群以及池的最佳实践123
6.2.1 分层之间配置的最佳实践124
6.2.2 vSphere的最佳实践126
6.3 SQLFire最佳实践以及vSphere上SQLFire的最佳实践(第二类JVM工作负载的最佳实践)128
6.3.1 SQLFire最佳实践129
6.3.2 在vSphere上vFabric SQLFire的最佳实践131
6.4 第三类工作负载的最佳实践136
6.5 GC策略选择138
6.5.1 IBM GC可选方案139
6.5.2 Oracle jRockit GC策略140
6.6 本章小结140
第7章 监控与故障排除141
7.1 开启请求支持的Ticket142
7.2 通过vCenter收集指标143
7.3 借助esxtop排查vSphere问题的技术146
7.4 Java问题排除指导148
7.4.1 排查Java内存问题150
7.4.2 排查Java线程竞争的问题151
7.5 本章小结152
附录FAQ153
术语表170
· · · · · · (
收起)