SlideShare a Scribd company logo
1 of 16
MySQL和IO(下)

核心系统数据库组褚霸
http://blog.yufeng.info
      2011-12-23

                          1
提纲

•   硬件
•   操作系统
•   InnoDB引擎
•   MySQL
•   Flash存储设备选择
•   讨论时间




                       2
大话硬件




新硬件趋向并行化
软件需要提高并行度


            3
CPU和大内存

• NUMA架构
  – CPU 直连内存
• 更大的独立L1,L2和共享的L3
  – 缓存践踏
• 大内存管理开销
  – 大页
• 趋势整合IO控制器
• 计算力过剩问题


                         4
Raid卡

• Raid卡喜爱大负载
 – 条带和多盘
• 内置缓存
 –   WB 还是 WT
 –   读写缓存比例
 –   预读
 –   BBU放电问题
• 逻辑卷
 – 分类不同用途的磁盘

                        5
PCIe Flash卡和SSD

• Flash设备不担心并发IO请求
 – NCQ
 – IOPS多剩问题
• 中断亲缘和平衡问题
 – 对应用的影响
• 供应商和产品特点
 – Fusionio
 – Virident
 – 华为等国内厂商

                                6
大话操作系统




操作系统不应该再是黑盒子
    追新无罪


               7
内核

•   RHEL 5U4还是 6U1?
•   超大2M页面
•   页面回写per设备
•   页面回收split lru




                           8
文件系统

• ext3 和 xfs
  –   数据根据底层设备智能对对齐,对SSD友好
  –   单个文件可并行dio
  –   更快的文件追加操作
  –   更少的锁冲突
• mount选项
  – nobarrier
  – data=ordered,writeback
• 预读
  – 真的有用吗?
                                9
页面缓存

•   vm.swappiness=0
•   vm.dirty*
•   vm.pagecache
•   posix_fadvise清理buffered io引起的垃圾页面
•   sync_file_range强制页面回写
•   fsync天花板
    – 如何计算,测量



                                        10
块设备

• 队列调度算法
  – deadline或者noop
  – cfq害人不浅,顺序变离散
  – 请求队列长度和latency
• Flashcache
  – 担心uncached IO
  – 以2M大小的set为单位迚行脏页回写
  – dev.flashcache.skip_seq_thresh_kb
• 软raid
  – 开销不大,整合设备
                                        11
大话InnoDB引擎




  InnoDB
又一个操作系统
 各种微调

               12
引擎如何工作

• 引擎核心部件
 – 库,表,行,列,事务概念,各种统计实现
 – 核心数据结构Btree
 – 内存管理, buffer和page
 – 逻辑文件空间管理,IO线程池管理读写请求,同步和
   异步
 – Cache淘汰,回写
• 和操作系统职能冲突
 – 谁更明白用户的需求
• 如何调优
 – BP是核心                      13
大话MySQL

• MySQL架构
  –   网络层太老,HS这样的新架构出现。
  –   SQL层和存储层分离,层间数据变换开销大。
  –   锁开销太大。
  –   对NUMA架构不友好。
• 网卡
  – 网络也是特殊的IO。
  – 担心你的千M网卡跑满。
  – 网络丢包重传问题(thin tcp)。

                              14
Flash存储设备选择


• 用途划分
 – 读密集:SSD+Raid
 – 写密集:Fio(+Flashcache)
 – 容量密集:Fio+Flashcache
• 优缺点
 – 成本和性能
• 对未来SSD方案的展望
 – 设备层次无论如何都会存在,Cache不会灭亡。
 – 更快的存储介质如PCM会很快出现。
 – 系统架构和数据结构需要有大的突破,传统数据库系
   统需要跟迚。                     15
谢谢大家




讨论时间~


         16

More Related Content

What's hot

淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践Wensong Zhang
 
Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Feng Yu
 
Linux内存管理
Linux内存管理Linux内存管理
Linux内存管理zijia
 
高级服务器设计和实现2
高级服务器设计和实现2高级服务器设计和实现2
高级服务器设计和实现2Feng Yu
 
OTN软硬件结合数据库解决方案
OTN软硬件结合数据库解决方案OTN软硬件结合数据库解决方案
OTN软硬件结合数据库解决方案freezr
 
了解应用服务器
了解应用服务器了解应用服务器
了解应用服务器Feng Yu
 
网站存储经验谈pdf
网站存储经验谈pdf网站存储经验谈pdf
网站存储经验谈pdfYu Lin
 
Exadata那点事
Exadata那点事Exadata那点事
Exadata那点事freezr
 
Ceph Day Beijing - Leverage Ceph for SDS in China Mobile
Ceph Day Beijing - Leverage Ceph for SDS in China MobileCeph Day Beijing - Leverage Ceph for SDS in China Mobile
Ceph Day Beijing - Leverage Ceph for SDS in China MobileDanielle Womboldt
 
高级服务器设计和实现3
高级服务器设计和实现3高级服务器设计和实现3
高级服务器设计和实现3Feng Yu
 
Private Cloud vs Public Cloud Analysis
Private Cloud vs Public Cloud AnalysisPrivate Cloud vs Public Cloud Analysis
Private Cloud vs Public Cloud AnalysisChris Hsiang
 
低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索Feng Yu
 
我为什么要选择RabbitMQ
我为什么要选择RabbitMQ我为什么要选择RabbitMQ
我为什么要选择RabbitMQFeng Yu
 
Memcached vs redis
Memcached vs redisMemcached vs redis
Memcached vs redisqianshi
 
Proxmox VE 4.3 vs VMWare vSphere 6.1
Proxmox VE 4.3 vs VMWare vSphere 6.1Proxmox VE 4.3 vs VMWare vSphere 6.1
Proxmox VE 4.3 vs VMWare vSphere 6.1Chris Hsiang
 
應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局Alex Lau
 
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析iammutex
 

What's hot (20)

淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践
 
Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言
 
Linux内存管理
Linux内存管理Linux内存管理
Linux内存管理
 
高级服务器设计和实现2
高级服务器设计和实现2高级服务器设计和实现2
高级服务器设计和实现2
 
OTN软硬件结合数据库解决方案
OTN软硬件结合数据库解决方案OTN软硬件结合数据库解决方案
OTN软硬件结合数据库解决方案
 
了解应用服务器
了解应用服务器了解应用服务器
了解应用服务器
 
网站存储经验谈pdf
网站存储经验谈pdf网站存储经验谈pdf
网站存储经验谈pdf
 
Exadata那点事
Exadata那点事Exadata那点事
Exadata那点事
 
Ceph Day Beijing - Leverage Ceph for SDS in China Mobile
Ceph Day Beijing - Leverage Ceph for SDS in China MobileCeph Day Beijing - Leverage Ceph for SDS in China Mobile
Ceph Day Beijing - Leverage Ceph for SDS in China Mobile
 
PVE 4.1 HC 架構
PVE 4.1 HC 架構PVE 4.1 HC 架構
PVE 4.1 HC 架構
 
高级服务器设计和实现3
高级服务器设计和实现3高级服务器设计和实现3
高级服务器设计和实现3
 
Private Cloud vs Public Cloud Analysis
Private Cloud vs Public Cloud AnalysisPrivate Cloud vs Public Cloud Analysis
Private Cloud vs Public Cloud Analysis
 
低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索
 
我为什么要选择RabbitMQ
我为什么要选择RabbitMQ我为什么要选择RabbitMQ
我为什么要选择RabbitMQ
 
Memcached vs redis
Memcached vs redisMemcached vs redis
Memcached vs redis
 
Proxmox VE 4.3 vs VMWare vSphere 6.1
Proxmox VE 4.3 vs VMWare vSphere 6.1Proxmox VE 4.3 vs VMWare vSphere 6.1
Proxmox VE 4.3 vs VMWare vSphere 6.1
 
Ceph perf-tunning
Ceph perf-tunningCeph perf-tunning
Ceph perf-tunning
 
Proxmox 5.0
Proxmox 5.0Proxmox 5.0
Proxmox 5.0
 
應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局
 
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析
 

Viewers also liked

了解Cpu
了解Cpu了解Cpu
了解CpuFeng Yu
 
了解IO设备
了解IO设备了解IO设备
了解IO设备Feng Yu
 
了解IO协议栈
了解IO协议栈了解IO协议栈
了解IO协议栈Feng Yu
 
阿里云RDS for MySQL的若干优化
阿里云RDS for MySQL的若干优化阿里云RDS for MySQL的若干优化
阿里云RDS for MySQL的若干优化Lixun Peng
 
Cap 理论与实践
Cap 理论与实践Cap 理论与实践
Cap 理论与实践james tong
 
Alibaba patches in MariaDB
Alibaba patches in MariaDBAlibaba patches in MariaDB
Alibaba patches in MariaDBLixun Peng
 
DoubleBinlog方案
DoubleBinlog方案DoubleBinlog方案
DoubleBinlog方案Lixun Peng
 
MySQL和IO(上)
MySQL和IO(上)MySQL和IO(上)
MySQL和IO(上)Feng Yu
 
Erlang开发实践
Erlang开发实践Erlang开发实践
Erlang开发实践Feng Yu
 
mnesia脑裂问题综述
mnesia脑裂问题综述mnesia脑裂问题综述
mnesia脑裂问题综述Feng Yu
 
Cpu高效编程技术
Cpu高效编程技术Cpu高效编程技术
Cpu高效编程技术Feng Yu
 
Systemtap
SystemtapSystemtap
SystemtapFeng Yu
 
了解网络
了解网络了解网络
了解网络Feng Yu
 
P2P 设计经验谈
P2P 设计经验谈P2P 设计经验谈
P2P 设计经验谈Feng Yu
 
Erlang全接触
Erlang全接触Erlang全接触
Erlang全接触Feng Yu
 
高级服务器设计和实现1
高级服务器设计和实现1高级服务器设计和实现1
高级服务器设计和实现1Feng Yu
 
Tsung 压力测试工具
Tsung 压力测试工具Tsung 压力测试工具
Tsung 压力测试工具Feng Yu
 
Oprofile linux
Oprofile linuxOprofile linux
Oprofile linuxFeng Yu
 
Upstream design and_implementation_in_nginx
Upstream design and_implementation_in_nginxUpstream design and_implementation_in_nginx
Upstream design and_implementation_in_nginxmonad bobo
 

Viewers also liked (20)

了解Cpu
了解Cpu了解Cpu
了解Cpu
 
了解IO设备
了解IO设备了解IO设备
了解IO设备
 
了解IO协议栈
了解IO协议栈了解IO协议栈
了解IO协议栈
 
阿里云RDS for MySQL的若干优化
阿里云RDS for MySQL的若干优化阿里云RDS for MySQL的若干优化
阿里云RDS for MySQL的若干优化
 
Cap 理论与实践
Cap 理论与实践Cap 理论与实践
Cap 理论与实践
 
Alibaba patches in MariaDB
Alibaba patches in MariaDBAlibaba patches in MariaDB
Alibaba patches in MariaDB
 
DoubleBinlog方案
DoubleBinlog方案DoubleBinlog方案
DoubleBinlog方案
 
MySQL和IO(上)
MySQL和IO(上)MySQL和IO(上)
MySQL和IO(上)
 
Erlang开发实践
Erlang开发实践Erlang开发实践
Erlang开发实践
 
mnesia脑裂问题综述
mnesia脑裂问题综述mnesia脑裂问题综述
mnesia脑裂问题综述
 
Cpu高效编程技术
Cpu高效编程技术Cpu高效编程技术
Cpu高效编程技术
 
Systemtap
SystemtapSystemtap
Systemtap
 
了解网络
了解网络了解网络
了解网络
 
Death by PowerPoint
Death by PowerPointDeath by PowerPoint
Death by PowerPoint
 
P2P 设计经验谈
P2P 设计经验谈P2P 设计经验谈
P2P 设计经验谈
 
Erlang全接触
Erlang全接触Erlang全接触
Erlang全接触
 
高级服务器设计和实现1
高级服务器设计和实现1高级服务器设计和实现1
高级服务器设计和实现1
 
Tsung 压力测试工具
Tsung 压力测试工具Tsung 压力测试工具
Tsung 压力测试工具
 
Oprofile linux
Oprofile linuxOprofile linux
Oprofile linux
 
Upstream design and_implementation_in_nginx
Upstream design and_implementation_in_nginxUpstream design and_implementation_in_nginx
Upstream design and_implementation_in_nginx
 

Similar to MySQL和IO(下)

豆瓣网技术架构变迁
豆瓣网技术架构变迁豆瓣网技术架构变迁
豆瓣网技术架构变迁reinhardx
 
Taobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qconTaobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qconYiwei Ma
 
分布式缓存与队列
分布式缓存与队列分布式缓存与队列
分布式缓存与队列XiaoJun Hong
 
ElasticSearch Training#2 (advanced concepts)-ESCC#1
ElasticSearch Training#2 (advanced concepts)-ESCC#1ElasticSearch Training#2 (advanced concepts)-ESCC#1
ElasticSearch Training#2 (advanced concepts)-ESCC#1medcl
 
网站存储经验谈-pdf
网站存储经验谈-pdf网站存储经验谈-pdf
网站存储经验谈-pdfYu Lin
 
浅谈 My sql 性能调优
浅谈 My sql 性能调优浅谈 My sql 性能调优
浅谈 My sql 性能调优thinkinlamp
 
MySQL应用优化实践
MySQL应用优化实践MySQL应用优化实践
MySQL应用优化实践mysqlops
 
Mysql调优
Mysql调优Mysql调优
Mysql调优ken shin
 
硬件体系架构浅析
硬件体系架构浅析硬件体系架构浅析
硬件体系架构浅析frogd
 
寫出高性能的服務與應用 那些你沒想過的事
寫出高性能的服務與應用 那些你沒想過的事寫出高性能的服務與應用 那些你沒想過的事
寫出高性能的服務與應用 那些你沒想過的事Chieh (Jack) Yu
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲84zhu
 
数据库高可用架构
数据库高可用架构数据库高可用架构
数据库高可用架构freezr
 
李战怀 大数据环境下数据存储与管理的研究
李战怀 大数据环境下数据存储与管理的研究李战怀 大数据环境下数据存储与管理的研究
李战怀 大数据环境下数据存储与管理的研究jins0618
 
My sql 5.6新特性深入剖析——innodb引擎
My sql 5.6新特性深入剖析——innodb引擎My sql 5.6新特性深入剖析——innodb引擎
My sql 5.6新特性深入剖析——innodb引擎frogd
 
Hadoop con 2015 hadoop enables enterprise data lake
Hadoop con 2015   hadoop enables enterprise data lakeHadoop con 2015   hadoop enables enterprise data lake
Hadoop con 2015 hadoop enables enterprise data lakeJames Chen
 
分布式Key Value Store漫谈
分布式Key Value Store漫谈分布式Key Value Store漫谈
分布式Key Value Store漫谈Tim Y
 
分布式Key-value漫谈
分布式Key-value漫谈分布式Key-value漫谈
分布式Key-value漫谈lovingprince58
 
大型网站架构的发展
大型网站架构的发展大型网站架构的发展
大型网站架构的发展drewz lin
 
大型网站架构的发展
大型网站架构的发展大型网站架构的发展
大型网站架构的发展Hesey
 

Similar to MySQL和IO(下) (20)

豆瓣网技术架构变迁
豆瓣网技术架构变迁豆瓣网技术架构变迁
豆瓣网技术架构变迁
 
Taobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qconTaobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qcon
 
分布式缓存与队列
分布式缓存与队列分布式缓存与队列
分布式缓存与队列
 
ElasticSearch Training#2 (advanced concepts)-ESCC#1
ElasticSearch Training#2 (advanced concepts)-ESCC#1ElasticSearch Training#2 (advanced concepts)-ESCC#1
ElasticSearch Training#2 (advanced concepts)-ESCC#1
 
网站存储经验谈-pdf
网站存储经验谈-pdf网站存储经验谈-pdf
网站存储经验谈-pdf
 
浅谈 My sql 性能调优
浅谈 My sql 性能调优浅谈 My sql 性能调优
浅谈 My sql 性能调优
 
MySQL应用优化实践
MySQL应用优化实践MySQL应用优化实践
MySQL应用优化实践
 
Mysql调优
Mysql调优Mysql调优
Mysql调优
 
硬件体系架构浅析
硬件体系架构浅析硬件体系架构浅析
硬件体系架构浅析
 
寫出高性能的服務與應用 那些你沒想過的事
寫出高性能的服務與應用 那些你沒想過的事寫出高性能的服務與應用 那些你沒想過的事
寫出高性能的服務與應用 那些你沒想過的事
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲
 
数据库高可用架构
数据库高可用架构数据库高可用架构
数据库高可用架构
 
李战怀 大数据环境下数据存储与管理的研究
李战怀 大数据环境下数据存储与管理的研究李战怀 大数据环境下数据存储与管理的研究
李战怀 大数据环境下数据存储与管理的研究
 
My sql 5.6新特性深入剖析——innodb引擎
My sql 5.6新特性深入剖析——innodb引擎My sql 5.6新特性深入剖析——innodb引擎
My sql 5.6新特性深入剖析——innodb引擎
 
Hadoop con 2015 hadoop enables enterprise data lake
Hadoop con 2015   hadoop enables enterprise data lakeHadoop con 2015   hadoop enables enterprise data lake
Hadoop con 2015 hadoop enables enterprise data lake
 
Hantuo openstack
Hantuo openstackHantuo openstack
Hantuo openstack
 
分布式Key Value Store漫谈
分布式Key Value Store漫谈分布式Key Value Store漫谈
分布式Key Value Store漫谈
 
分布式Key-value漫谈
分布式Key-value漫谈分布式Key-value漫谈
分布式Key-value漫谈
 
大型网站架构的发展
大型网站架构的发展大型网站架构的发展
大型网站架构的发展
 
大型网站架构的发展
大型网站架构的发展大型网站架构的发展
大型网站架构的发展
 

More from Feng Yu

Rethink db&tokudb调研测试报告
Rethink db&tokudb调研测试报告Rethink db&tokudb调研测试报告
Rethink db&tokudb调研测试报告Feng Yu
 
高性能集群服务器(Erlang解决方案)
高性能集群服务器(Erlang解决方案)高性能集群服务器(Erlang解决方案)
高性能集群服务器(Erlang解决方案)Feng Yu
 
开源混合存储方案(Flashcache)
开源混合存储方案(Flashcache)开源混合存储方案(Flashcache)
开源混合存储方案(Flashcache)Feng Yu
 
Erlang low cost_clound_computing
Erlang low cost_clound_computingErlang low cost_clound_computing
Erlang low cost_clound_computingFeng Yu
 
Inside Erlang Vm II
Inside Erlang Vm IIInside Erlang Vm II
Inside Erlang Vm IIFeng Yu
 

More from Feng Yu (7)

Rethink db&tokudb调研测试报告
Rethink db&tokudb调研测试报告Rethink db&tokudb调研测试报告
Rethink db&tokudb调研测试报告
 
高性能集群服务器(Erlang解决方案)
高性能集群服务器(Erlang解决方案)高性能集群服务器(Erlang解决方案)
高性能集群服务器(Erlang解决方案)
 
开源混合存储方案(Flashcache)
开源混合存储方案(Flashcache)开源混合存储方案(Flashcache)
开源混合存储方案(Flashcache)
 
Erlang low cost_clound_computing
Erlang low cost_clound_computingErlang low cost_clound_computing
Erlang low cost_clound_computing
 
Go
GoGo
Go
 
Inside Erlang Vm II
Inside Erlang Vm IIInside Erlang Vm II
Inside Erlang Vm II
 
Go Lang
Go LangGo Lang
Go Lang
 

MySQL和IO(下)