- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库的优化与调优:从理论到实践精选
数据库的优化与调优:从理论到实践
Outline
• 数据库性能优化与调优:从理论到实践
– 理论篇
• 从串行到并行
• 从畅通无阻到排队
• 必须了解的硬件知识
– 实践篇
• MySQL各版本的优化
• MySQL使用中的调优
Moores Law
Amdahls law
Queueing Theory
理论篇
• 理论篇
– 从串行到并行
• 欢迎来到并行世界:
• 并行世界,串行的副作用:
– 从畅通无阻到排队
• 并发的世界,充满排队:
– 必须了解的硬件知识
• CPU/Cache/Memory/Disk ...
•
欢迎来到并行世界
摩尔定律(Moores Law)
失效了?
– No,只是转变了形式
而已。
• Herb Sutter
– The Free Lunch Is Over –
A Fundamental Turn
Toward Concurrency in
Software.
• 何谓Free Lunch?
– 通过CPU主频提升,软
件能够自动提升性能的
时代已经一去不复返;
– 是时候考虑多线程/并
发程序了;
•
并行世界,串行的副作用
Gene Amdahl怎么说
(Amdahls law)?
–
–
–
–
–
–
P:程序可并行执行比率
1-P:串行比率
N:N个Processors
S(N):加速比
解读:程序的极限性能,
最终取决于程序串行部分
所占比率;
尽量消除程序中的串行部
分;
无限制的并行,您无法达到
• 现实生活中
•
•
无限制的并行,您无法达到(续)
硬件资源瓶颈/软件内部等待
– CPU/Memory/Disk...
– Mutex/Spinlock/...
排队论(Queueing Theory)
– 资源利用率;
– 响应时间/等待时间;
– 吞吐量;
– 这些指标,均与性能相关;
• Little’s Law
– L:平均队列长度;
– Lambda:平均吞吐率;
– W:平均响应时间;
写程序,为什么需要了解硬件?
• 看看他们怎么说?
– Hardware and software working together in harmony.
• Martin Thompson
– Know Hardware to Design Better Software.
• 未找到出处,暂时算我说的吧
• 硬件与软件性能息息相关
– 硬件各组件的Latency和Throughput;
– 语言那些与硬件相关的特性;
当前的硬件发展到了什么阶段?
•
注:来自Martin Thompson CPU Cache Flushing Fallacy 一文;
硬件各组件Latency对比
注:来自Gregg Brendan 《Systems Performance: Enterprise and the Cloud》一书;
授人以鱼不如授人以渔
• 你应该亲自测试这些硬件性能指标
– Igor Ostrovsky——Gallery of Processor Cache Effects
•
•
•
•
测试内存Latency;
测试Cache Lines大小;
测试L1/L2/L3 Cache大小;
...
– ccBench —— Everything You Always Wanted to Know about
Synchronization but Were Afraid to Ask (SOSP’ 13)
• 小工具,可以测试CPU Cache/Cache Coherence/Atomic Operations性能
理论结束,该来点实战了
• 吐槽时间
– 前面说了这么多,真的跟MySQL数据库的优化与调优有关系吗?
你不是在忽悠吧?
– 接下来,让我们通过实践篇,来看看前面的这些理论,在MySQL
数据库中是如何得到实践的。
数据库的优化与调优:实践篇
• 实践篇
– MySQL各版本的优化
• 基础优化:串行 并行
• 进阶优化:减少系统中的串行点
• 高级优化:软硬件相辅相成
– MySQL使用中的调优
• 资源利用率没到100%
• 认识MySQL,构建平衡系统
•
基础优化-拿串行开刀(一)
臭名远播的prepare_commit_mutex
–
–
–
–
–
目的:保持事务在InnoDB存储引擎与MySQL Binlog中提交顺序的
文档评论(0)