小田圭二
日本Oracle株式会社咨询部门经理。在解决性能问题方面有着丰富的经验,著有《图解OS、存储、网络:DB的内部机制》(絵で見てわかるOS/ストレージ/ネットワーク~データベースはこう使っている)、《图解Oracle的机制》(絵で見てわかるOracleの仕組み)等多部著作。
榑松谷仁
日本Oracle株式会社高级首席顾问。曾在Emprix公司(美国本部)就职,为SIer和一般企业提供压力测试、性能管理等方面的咨询服务。之后就职于日本Oracle株式会社,还负责为使用Java、WebLogic、Exalogic等中间件产品的客户提供咨询服务。
平山毅
在东京理科大学理工学部上学期间成为Sun Site用户,专业是计算机科学和统计学。曾在日本某大型互联网公司就职,目前在世界上最大的云计算供应商做架构师和咨询顾问,负责了多个大规模的国际性案件。喜欢的技术是Oracle、VCE、AWS。
冈田宪昌
曾在某IT公司做基础设施的设计、搭建和运维工作,后就职于日本Oracle株式会社,负责Oracle产品的设计和PM支持、DBA支持等。目前在某大型虚拟化软件供应商做咨询顾问和研发技术经理,负责为虚拟化基础设施和云计算的设计、运维等提供咨询服务。
第1章 性能的基础知识1
1.1 学习性能所必需的知识2
1.2 算法的优缺点与学习方法4
1.2.1 什么是算法4
1.2.2 算法的基础5
1.2.3 学习算法的窍门7
1.3 算法的应用实例及性能的差异8
1.3.1 日常生活中算法的例子8
1.3.2 对性能的影响程度9
1.3.3 评价算法的指标11
学习信息科学的重要性13
1.4 响应与吞吐的区别14
系统工程师学习编程的重要性16
1.5 算法的具体例子16
1.5.1 数组与循环处理16
1.5.2 链表与循环处理19
1.5.3 树与查找21
1.5.4 散列算法25
1.5.5 队列28
1.5.6 栈32
1.5.7 排序(快速排序)34
1.5.8 缓存①(回写)36
1.5.9 缓存②(直写)38
DMBS是数据结构与算法的宝库38
1.5.10 锁与性能40
【高级篇】锁的机制是如何实现的42
【高级篇】性能优劣不能只看正常情况44
第2章 性能分析的基础45
2.1 性能分析从测量开始46
2.2 什么是必要的性能信息46
2.2.1 “分段查找”原则46
2.2.2 性能信息的3种类型48
2.2.3 系统的模型与性能故障时的运作情况50
2.2.4 数据的种类及分析的窍门53
2.3 性能分析中的重要理论54
2.3.1 等待队列理论的术语55
2.3.2 计算等待队列的平均等待时间56
2.3.3 使用率和等待队列的例子57
2.3.4 实际上可以获取哪些信息59
需要定期确认性能吗?61
2.4 OS的命令61
2.4.1 sar62
2.4.2 vmstat64
时间同步非常重要66
2.4.3 ps66
2.4.4 netstat68
2.4.5 iostat70
2.4.6 top73
2.4.7 数据包转储(wireshark、tcpdump等)74
2.4.8 pstack76
2.4.9 系统调用(strace等)78
2.4.10 Profiler80
2.4.11 Windows环境81
第3章 实际系统的性能分析85
3.1 Web/AP服务器与Java/C应用程序86
3.1.1 Web服务器的访问日志86
3.1.2 应用程序、AP服务器的日志87
3.2 DB服务器的性能测量90
3.2.1 DBMS的性能测量的原理90
3.2.2 性能分析告一段落92
批处理的性能测量93
3.3 存储性能分析的思路94
3.3.1 存储的相关术语94
3.3.2 存储性能分析的思路:重视IOPS96
3.4 网络性能分析的思路100
性能故障数据应该保存多久?102
3.5 调查原因102
3.5.1 初学者容易掉入的陷阱103
3.5.2 应有的态度106
获取各种性能信息的时间要吻合吗?108
3.5.3 实际的调查流程108
性能分析的理想工具111
第4章 性能调优113
4.1 性能与调优114
4.1.1 现实中的性能114
4.1.2 在现场要保持“大局观”117
4.2 性能调优的准则118
4.2.1 设定既不能太粗也不能太细,要刚刚好119
4.2.2 调优要循序渐进120
4.2.3 通过重复使用来提速121
4.2.4 汇总处理(集中、Piggyback)121
4.2.5 提高速度与实现并行123
4.2.6 纵向扩展与横向扩展124
4.2.7 局部性124
编译器会与RDBMS走上同一条道路吗?125
4.3 现场可以使用的技巧126
4.3.1 省略循环,减少投接球126
4.3.2 访问频率高的数据存放入键值存储或散列表中127
4.3.3 访问频率高的数据放在使用位置附近127
4.3.4 把同步变成异步128
4.3.5 带宽控制130
4.3.6 LRU算法131
4.3.7 分割处理或者细化锁的粒度131
4.3.8 使用不丢失的回写缓存132
4.3.9 使用多层缓存132
4.3.10 使用巨帧和高速网络132
4.3.11 负载均衡、轮询133
4.3.12 关联性、绑定、粘滞会话134
4.3.13 写时复制135
4.3.14 日志136
4.3.15 压缩137
4.3.16 乐观锁137
4.3.17 列式数据库138
4.3.18 服务器的性能设置中,初始值=最大值?139
4.4 实际业务中碰到的性能问题139
4.4.1 性能比较的参考数据139
4.4.2 缓存命中率并不一定要高140
4.4.3 存储的调优方针141
4.4.4 虽然容量足够,但还是添加磁盘141
4.4.5 从性能角度看文件分割142
4.4.6 90百分位143
4.4.7 读取与写入的比例143
4.5 调优的例子144
4.5.1 例1:2层循环中select语句的执行144
4.5.2 例2:偶尔出现性能下降147
等待队列的前面发生了什么?149
第5章 性能测试151
5.1 性能测试的概要152
5.1.1 项目工程中的性能测试152
5.1.2 不同职责的性能测试相关人员153
5.2 常见的失败情况:9种反面模式156
5.2.1 不能在期限内完成156
5.2.2 性能很差!解决不了性能问题157
5.2.3 由于没有考虑到环境差异而导致发生问题158
5.2.4 压力场景设计不完备导致发生问题159
5.2.5 没有考虑到缓冲、缓存的使用而导致发生问题159
5.2.6 没有考虑到思考时间而导致发生问题160
5.2.7 报告内容难以理解导致客户不能认同162
5.2.8 客户因为存在不信任感而不能认同163
5.2.9 测试很花时间164
5.3 性能测试的种类167
5.3.1 实施的周期168
5.3.2 狭义的性能测试169
5.3.3 临界测试(临界性能、回退性能、故障测试)169
5.3.4 基础设施性能测试174
5.3.5 应用程序单元性能测试178
5.3.6 耐久测试179
5.3.7 关联领域180
5.4 项目工程中考虑的性能测试181
5.4.1 需求定义181
5.4.2 项目规划186
5.4.3 【基本设计】选择系统187
5.4.4 【基本设计】性能测试环境188
5.4.5 【基本设计】其他与性能设计相关的事项191
5.4.6 【性能测试设计】测试计划的细节192
5.4.7 【性能测试设计】人员配备与联络体制194
5.4.8 【基础设施集成测试】基础设施性能测试195
5.4.9 【集成测试】多并发运行测试197
5.4.10 【系统测试】压力测试、临界测试、耐久测试197
5.4.11 【运维测试】性能监控测试、故障测试198
5.4.12 【交付】性能测试结果的验收报告198
5.4.13 【运维】初期运行确认199
5.5 性能测试的课题与必要的技巧200
5.5.1 性能预估能力200
5.5.2 高效的反复实施能力202
5.5.3 Oracle Application Testing Suite的使用效果203
第6章 虚拟化环境下的性能209
6.1 虚拟化与性能210
6.2 虚拟化的概要211
6.2.1 什么是服务器虚拟化211
6.2.2 虚拟化的种类212
硬件辅助虚拟化214
6.3 服务器虚拟化的主要技术(过载使用)215
6.3.1 CPU的虚拟化技术215
6.3.2 内存的虚拟化技术218
6.4 虚拟化环境下性能的相关知识与分析方法225
6.4.1 性能分析的工具225
6.4.2 CPU的性能管理226
6.4.3 内存的性能管理231
6.4.4 存储的性能管理234
还没使用DRS吗?237
6.4.5 网络的性能管理240
延迟灵敏度功能243
第7章 云计算环境下的性能245
7.1 云计算环境下性能的相关知识246
7.1.1 云计算环境下性能会变差吗246
7.2 云计算与本地部署的差异247
7.2.1 云计算的定义248
7.2.2 从云计算的特点来看与本地部署环境的不同248
云计算实现的终极全球化251
7.2.3 云计算的实现形态251
混合结构的成本管理就是使用实物期权实现的投资组合管理252
7.2.4 从云计算的服务模式来看其与本地部署的差别253
云计算环境中可以把盈亏平衡点图形化(独自SaaS提供的最优费用模型)254
7.2.5 把握资源的变动因素与固定因素254
7.3 云计算环境的内部结构与最佳应用程序架构262
7.3.1 集中式?分布式?262
7.3.2 紧耦合?松耦合?264
7.3.3 SOAP?REST?265
能够把握抽象化的云计算环境的美国人——图与想象的重要性268
7.3.4 前端的分布式处理:网络的访问方法269
7.3.5 后端的分布式处理:数据存储的知识(从ACID到BASE)271
7.3.6 提高TCP通信的速度272
7.3.7 提高对象存储的速度272
7.3.8 C语言?Java语言?还是脚本语言?273
7.3.9 云计算环境下高性能服务的架构274
7.3.10 开放迁移与云计算迁移277
7.3.11 推测云计算的内部结构278
7.4 云计算环境下性能分析的方法278
7.4.1 获得云计算环境的基准数据的价值与不断进化的性能值278
性能领域是理科工程师的特权?280
7.4.2 Web系统的基本分析方法281
7.4.3 批处理系统的基本分析方法282
7.4.4 云计算的自动扩展功能283
7.4.5 解析云计算环境中的复杂信息的统计方法284
7.5 云计算环境中开发阶段的思维方式285
7.5.1 估算(基本设计)286
7.5.2 性能测试(系统测试)287
7.5.3 项目管理287
云计算环境下,经营者也需要关注详细的性能数据吗?288
7.6 云计算环境中运维阶段的思维方式289
7.6.1 容量管理289
阈值设置与系统安全系数、标准化的价值290
7.6.2 故障发生时的降规模容量运维292
7.6.3 生命周期与更新293
云计算实现的DevOps中性能调优的高效化294
参考文献296
作者简介297
《学好电工技术500个问与答》内容简介:本书答共14章,分别是电工常用元器件,变电与配电装置,动力用电设备与控制,机床电路,照明
《企鹅凶猛:马化腾的中国功夫》试图从腾讯公司的诞生、成长、自卫战和反击战等几个层面,展现了昔日的“丑小鸭”羽化成“白天鹅”
《数字档案资源社会化开发》内容简介:档案信息资源开发是对档案内容的一种再现叙事。长期以来,这种再现叙事的主体主要是保管档案
《醉鲨》内容简介:★“荣获挪威最重要的文学奖——伯瑞格文学奖 (The Brage Prize),至今在挪威畅销不衰。★一部精彩绝伦的北欧探
《网页设计与配色经典案例解析(第2版)(全彩)》以介绍色彩知识为主线,从色彩原理入手,辅以大量优秀网页便于读者对色彩搭配的理解
《PaaS实现与运维管理》内容简介:《PaaS实现与运维管理:基于Mesos +Docker+ELK的实战指南》主要阐述了云计算中PaaS平台的实现与运
《插画教室》内容简介:本书是专业插画设计基础教程。插画创作离不开植物、动物、人物、静物这些元素,本书便从这些元素入手,以几
《世界航母大百科》内容简介:本书以时间为主线,对绝大部分航空母舰逐一进行了介绍,每型配以简明扼要的文字说明、线图、历史照片
LabVLEW8.2基础教程 内容简介 本书介绍虚拟仪器的基本概念和在labview 8.2中文版环境中进行虚拟仪器开发的方法。全书共分10章,包括虚拟仪器与l...
计算理论是计算机科学的理论基础。《计算理论基础》(第2版)介绍了计算理论最核心、最基本的内容,包括形式语言与自动机、可计算性
《苍穹信步》内容简介:《漫步太空书系》是一套有关航天知识的系统科普教育丛书,尽量满足广大航天爱好者的求知需求,我们希望帮助
1997年5月11日,全世界数百万人通过电视观看了一场惊人的胜利——一台计算机战胜了欲捍卫世界冠军称号的卡斯帕罗夫,此举震惊了国
《Photoshop CS5实战从入门到精通(超值版)》内容简介:《Photoshop CS5实战从入门到精通(超值版)》通过精选案例引导读者深入学
《我们今天怎样做父亲》内容简介:回望晚清民国,我们发现了一个教育的传奇:一个偏僻的小山村,一个寒素之家,竟然诞生出了中国近
计算机网络释疑与习题解答 内容简介 《计算机网络释疑与习题解答》是《计算机网络》第5版的配套参考书。全书共10章,每一章都与《计算机网络》第5版的内容相对应,有...
Attheendofapartheid,underpressurefromlocalandtransnationalcapitalandthehegemonyo...
《网络安全法实用教程》内容简介:本书是在全面收集整理网络安全法发布以来的相关规范性文件的基础上,按照网络安全法的制度设计进
《走近音乐大师(第二辑)》内容简介:本书汇集了包括指挥家、钢琴家、小提琴家在内的30余位国内外著名音乐家的专访,力求从不同方
《金湖大合唱钢琴伴奏合唱谱》内容简介:这部交响音诗是作者在深入大、小兴安岭和长白山地区采风获得灵感所作,作者根据自己的选材
《金融的逻辑(套装共2册)》内容简介:《金融的逻辑》(上、下)是陈志武教授关于金融的发展历史、演变、影响和作用的一部作品,由