SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
数据库性能量化
叶正盛
阿里巴巴-运维部




阿里巴巴-运维部-数据库管理
About me
   姓名:叶正盛
   阿里巴巴数据库技术丏家
   国家认证系统分析师、高级项目经理
   10余年软件开发及管理经验
   从事过微机监控、外贸、进销存、ERP系统设计开发
   从事过省级电力信息化建设
   我的博客:http://blog.csdn.net/yzsind
   新浪微博:http://weibo.com/yzsind
Agenda
 硬件与数据库相关性能指标介绍

 业务指标转变为数据库技术指标实例

 什么时候做数据库拆分?

 SSD给数据库带来什么变化?
硬件与数据库相关性能指标
 磁盘                       CPU
   1秒钟可以从磁盘随机访问多少次?
 网络
   网络延时与网络带宽
 内存                       内存
   访问内存一个数据要多少时间?
 CPU
   对数据库CPU最重要的是什么?

                      网卡         硬盘
存储磁盘性能量化
           10K 3.5寸 15K 3.5寸     10K 2.5寸   15K 2.5寸
           SAS      SAS          SAS        SAS

延时         3ms        2ms        3ms        2ms
(等待时间)
延时         3.5ms      3.5ms      3ms        3ms
(寻道时间)
IOPS-8KB   153(333)   181(500)   150(333)   200(500)

内部平均带 130MB/s         160MB/s    130MB/s    160MB/s
宽

影响性能的主要因素:转速、盘片大小、磁存储密度
网络性能量化
• 100Mbps/1Gbps/10Gbps
• 带宽:10MB/s, 100MB/s ,1000MB/s
• 本地机房延时:50us-1ms
 mking>ping 10.20.149.82
 PING 10.20.149.82 (10.20.149.82) 56(84) bytes of data.
 64 bytes from 10.20.149.82: icmp_seq=0 ttl=64 time=0.124 ms
 64 bytes from 10.20.149.82: icmp_seq=1 ttl=64 time=0.109 ms
 64 bytes from 10.20.149.82: icmp_seq=2 ttl=64 time=0.110 ms
 64 bytes from 10.20.149.82: icmp_seq=3 ttl=64 time=0.109 ms
 64 bytes from 10.20.149.82: icmp_seq=4 ttl=64 time=0.110 ms
1Gbps网络Netperf 测试结果
• 数据库TCP包请求表现
350000


                                                                          286464
300000
                                                           269120                        288224
                                                  256512

250000


200000
                                         141712                                                   并发

150000                                                                                            TPS


                                 76920
100000
                         37944
50000            21221
         11688

     0
         1       2       4        8         16    32        64      128            256
网络延时与网络带宽
• 网络延时=处理时间+传输时间+传播时间
  – 处理时间=网络设备数据包处理时间(主机、交换机、路由
    器等等)
  – 传输时间=数据量/物理链路网络带宽
  – 传播时间=两地距离*2/200000
• Socket缓冲区大小(buffer_size)
• 远距离网络单线程带宽≈ buffer_size/2/latency
• 实例,A到B网络延时15ms,
  单线程测试结果:
• 缓冲区大小16K,传输带宽约600KB/s
• 缓冲区大小40K,传输带宽约1.6MB/s
• 缓冲区大小400K,传输带宽约15MB/s
CPU
                流水
                线


      缓存                  运算
                架构

           主频        工艺
CPU缓存、内存
• Cache 延时 0.5-30ns
• Cache 带宽 10-100GB/s
• Cache Line 32-128Bytes
                         寄存器
• 主存延时
  – 30-200ns            L1(1ns)
• 主存带宽                  L2(5ns)
  – 2GB/s-12GB/s        L3(15ns)
                       主存(80ns)
CPU单核性能
• 执行Oracle数据库的hash及排序比较运算
1800

1600

1400

1200

1000

800
                       1毫秒执行
600                    HASH运算次数
                       1毫秒执行
400
                       排序比较次数
200

  0
Oracle数据库在1秒可以做什么
CPU:INTEL 2GHz,单核测试
以下数据与机器硬件性能、Oracle版本、参数关系密切,数据仅供数量级内的参考,仅用于快速评估



次数        动作
10        连接数据库
100       磁盘物理读,注:非SSD硬盘
1000      简单SQL硬解析,select * from t where pk=?
10000     简单SQL软解析
100000    逻辑读
1000000   Hash运算,10字节排序,取Sysdate
4000000   简单函数运算,如substr、lower之类的函数
实例分析
• 普通商品管理子系统
• 20万商家,5万活跃会员
• 2000万商品
• 平均每个商品信息基本信息300字节,详细
  信息8K
• 业务高峰期4小时
业务指标->技术指标
活跃会员数:5万,业务高峰时段:4小时 (9:30-11:30,14:30-16:30)

业务功能     会员操    总操作次       返回    总返回        数据     总数据大小
         作次数    数          记录数   记录数        大小

登录       2      100000     1     100000     1000   100000000
商品列表     50     2500000    20    50000000   6000   15000000000

查看商品明    200    10000000   1     10000000   8000   80000000000
细
新增商品     2      100000     1     100000     8000   800000000
修改商品     50     2500000    1     2500000    8000   20000000000

删除商品     1      50000      1     50000      500    25000000
总计              15250000         62750000          1.15925E+11

每秒指标            应用QPS            存储IOPS            网络带宽
                1059             4358              8050347
                                                   (8MB/s)
分表、分区
人员待办工单查询

Select * from bpm_work where user_id =‘0001’ and status=‘new’
• 活劢数据与历史数据分离:(分表、分区、压缩)
  – 工作流(仸务流、工单),按状态分表分区
  – 历年帐务记录,按年月分表分区
                                    status   user_id   …
status   user_id   …                new      0001      …
new      0002      …                new      0002      …
closed   0001      …                new      0001      …
new      0002      …                new      0008      …
new      0003      …                new      0003      …
closed   0003      …                new      0001      …
new      0008      …
closed   0001      …                status   user_id   …
new      0001      …                closed   0001      …
new      0001      …                closed   0006      …
closed   0001      …                closed   0007      …
closed   0002      …                closed   0002      …
new      0002      …                closed   0001      …
closed   0003      …                closed   0003      …
closed   0006      …                closed   0002      …
new      0007      …                closed   0001      …
数据聚集
• 核心数据聚集(聚集索引、单表聚簇)
  – 一对多关系
  – 会员发布商品
  – 会员交易记录
  – 博客评论、反馈

  blog_id   user_name   comment   blog_id   user_name   comment
  0002      AA          xxxx      0001      EE          xxxx
  0001      AA          xxxx      0001      DD          xxxx
  0002      CC          xxxx      0001      GG          xxxx
  0003      DD          xxxx      0001      BB          xxxx
  0003      BB          xxxx      0001      AA          xxxx
  0008      AA          xxxx      0002      AA          xxxx
  0001      EE          xxxx      0002      CC          xxxx
  0001      DD          xxxx      0002      RR          xxxx
  0001      GG          xxxx      0002      AA          xxxx
  0001      BB          xxxx      0003      DD          xxxx
  0002      RR          xxxx      0003      BB          xxxx
  0002      AA          xxxx      0003      TT          xxxx
  0003      TT          xxxx      0006      BB          xxxx
  0006      BB          xxxx      0007      DD          xxxx
  0007      DD          xxxx      0008      AA          xxxx
单机性能瓶颈
• 拆分
  – 水平拆分
  – 垂直拆分
  – 读写分离
  – 异地容灾

• 过早拆分增加系统的复杂度及维护成本,过晚拆分影响业务发展。

• 设计师一定要心中有数,而不是人云亦云
数据库拆分指标界限
• QPS? 40000/s
• TPS? 2000/s
• 日志数据写入量? 20MB/s
• 数据容量? 一天可以通过网络备仹全部数据
• IOPS达到多少? 没关系
SSD
• 固态硬盘(Solid State Disk)
• 接口 :USB、eSATA、SATA、SAS、FC、PCI-E
SSD VS 磁盘
指标          15K SAS磁盘   普通企业应用SSD   PCI-E SSD
延时          5ms         100us       30us
带宽          150MB/s     250MB/s     700MB/s
IOPS(8KB)   200         15000       60000
价格          GB/5元       GB/20元      GB/100元
工作功耗        15W         5W          25W
空闲功耗        10W         0.1W        12W
SSD方向
•   带宽接近内存(3年)
•   容量超过磁盘(2年)
•   价格GB/5元(3年)
•   新的硬盘外置接口,比SAS、SATA性能更好(5年)
SSD对数据库性能的影响
• IOPS提高了100倍,按ID条件类型的查询性能大幅提升,
  memcached类上级缓存的提升性能不明显,缓存失效也不会产生雪
  崩效应;
• 索引的聚簇因子作用变小,聚集索引、簇表、索引组织表的性能提升
  不明显;
• SSD顺序写性能与磁盘没有优势,所以日志文件,归档文件放在SSD
  上性价比较低。
SSD对数据库发展的影响
• 采用SSD后,IOPS存在大量富余资源,传统关系型数据库已经不能满
  足硬件发展的需要;
• 关系型数据库更多从SQL技术性能方面考虑,适合于表格关系,但是
  人类思维及现实信息更像是网状关系,SSD可能会让网状关系数据库
  有新的崛起。
SSD与网状数据库
                资
                    房
                产
                    子
     年
     龄                      同
                            事


                        照
 称          个           片
 呼          人


                            工
                            作
      血
      源                 聚
                家
                        会
30岁生日聚会信息       庭
KV vs RDBMS on SSD



   KV                        RDBMS



                 SSD


 KV数据库与传统数据库对SSD是同等起步,但SSD会让传统数据库满足
 更多性能需求场景,KV数据库在性能方向优势变小,所以需要在功能、
 易用性、可维护性方面突破,MongoDB就有它的亮点。
谢谢!

Mais conteúdo relacionado

Semelhante a 阿里巴巴 叶正盛 数据库性能量化

腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化topgeek
 
基于Innodb开发的最佳实践
基于Innodb开发的最佳实践基于Innodb开发的最佳实践
基于Innodb开发的最佳实践wubx
 
腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化areyouok
 
腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化topgeek
 
我对后端优化的一点想法.pptx
我对后端优化的一点想法.pptx我对后端优化的一点想法.pptx
我对后端优化的一点想法.pptxjames tong
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践Wensong Zhang
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践lovingprince58
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践drewz lin
 
Mongo db at qihoo 360
Mongo db at qihoo 360Mongo db at qihoo 360
Mongo db at qihoo 3602507697439
 
Tiny6410um hw-20101026
Tiny6410um hw-20101026Tiny6410um hw-20101026
Tiny6410um hw-20101026syed_sifa
 
MongoDB at Qihoo 360
MongoDB at Qihoo 360MongoDB at Qihoo 360
MongoDB at Qihoo 360MongoDB
 
Ocean base 千亿级海量数据库-日照
Ocean base 千亿级海量数据库-日照Ocean base 千亿级海量数据库-日照
Ocean base 千亿级海量数据库-日照Shaoning Pan
 
我对后端优化的一点想法 (2012)
我对后端优化的一点想法 (2012)我对后端优化的一点想法 (2012)
我对后端优化的一点想法 (2012)james tong
 
稳定、高效、低碳 -淘宝软件基础设施构建实践
稳定、高效、低碳  -淘宝软件基础设施构建实践稳定、高效、低碳  -淘宝软件基础设施构建实践
稳定、高效、低碳 -淘宝软件基础设施构建实践Wensong Zhang
 
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析iammutex
 
Infiniflash benchmark
Infiniflash benchmarkInfiniflash benchmark
Infiniflash benchmarkLouis liu
 
Apache Kylin Data Summit 2019: Kyligence Presentation
Apache Kylin Data Summit 2019: Kyligence PresentationApache Kylin Data Summit 2019: Kyligence Presentation
Apache Kylin Data Summit 2019: Kyligence PresentationTyler Wishnoff
 
20110625.【打造高效能的cdn系统】.易统
20110625.【打造高效能的cdn系统】.易统20110625.【打造高效能的cdn系统】.易统
20110625.【打造高效能的cdn系统】.易统锐 张
 
九州通小型机扩Vg大小(20090416)
九州通小型机扩Vg大小(20090416)九州通小型机扩Vg大小(20090416)
九州通小型机扩Vg大小(20090416)heima911
 

Semelhante a 阿里巴巴 叶正盛 数据库性能量化 (20)

腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化
 
基于Innodb开发的最佳实践
基于Innodb开发的最佳实践基于Innodb开发的最佳实践
基于Innodb开发的最佳实践
 
腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化
 
腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化
 
我对后端优化的一点想法.pptx
我对后端优化的一点想法.pptx我对后端优化的一点想法.pptx
我对后端优化的一点想法.pptx
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践
 
Taobao base
Taobao baseTaobao base
Taobao base
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践
 
Mongo db at qihoo 360
Mongo db at qihoo 360Mongo db at qihoo 360
Mongo db at qihoo 360
 
Tiny6410um hw-20101026
Tiny6410um hw-20101026Tiny6410um hw-20101026
Tiny6410um hw-20101026
 
MongoDB at Qihoo 360
MongoDB at Qihoo 360MongoDB at Qihoo 360
MongoDB at Qihoo 360
 
Ocean base 千亿级海量数据库-日照
Ocean base 千亿级海量数据库-日照Ocean base 千亿级海量数据库-日照
Ocean base 千亿级海量数据库-日照
 
我对后端优化的一点想法 (2012)
我对后端优化的一点想法 (2012)我对后端优化的一点想法 (2012)
我对后端优化的一点想法 (2012)
 
稳定、高效、低碳 -淘宝软件基础设施构建实践
稳定、高效、低碳  -淘宝软件基础设施构建实践稳定、高效、低碳  -淘宝软件基础设施构建实践
稳定、高效、低碳 -淘宝软件基础设施构建实践
 
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析
 
Infiniflash benchmark
Infiniflash benchmarkInfiniflash benchmark
Infiniflash benchmark
 
Apache Kylin Data Summit 2019: Kyligence Presentation
Apache Kylin Data Summit 2019: Kyligence PresentationApache Kylin Data Summit 2019: Kyligence Presentation
Apache Kylin Data Summit 2019: Kyligence Presentation
 
20110625.【打造高效能的cdn系统】.易统
20110625.【打造高效能的cdn系统】.易统20110625.【打造高效能的cdn系统】.易统
20110625.【打造高效能的cdn系统】.易统
 
九州通小型机扩Vg大小(20090416)
九州通小型机扩Vg大小(20090416)九州通小型机扩Vg大小(20090416)
九州通小型机扩Vg大小(20090416)
 

Mais de guiyingshenxia

新浪 李晓栋 非商业网络设备的新浪应用之路
新浪 李晓栋 非商业网络设备的新浪应用之路新浪 李晓栋 非商业网络设备的新浪应用之路
新浪 李晓栋 非商业网络设备的新浪应用之路guiyingshenxia
 
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维guiyingshenxia
 
新浪 杨海朝 Redis运维之道
新浪 杨海朝 Redis运维之道新浪 杨海朝 Redis运维之道
新浪 杨海朝 Redis运维之道guiyingshenxia
 
网易 王磊 网易海量数据存储平台的构建和运维
网易 王磊 网易海量数据存储平台的构建和运维网易 王磊 网易海量数据存储平台的构建和运维
网易 王磊 网易海量数据存储平台的构建和运维guiyingshenxia
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验guiyingshenxia
 
搜狐畅游 叶金荣 游戏数据库运维经验分享
搜狐畅游 叶金荣 游戏数据库运维经验分享搜狐畅游 叶金荣 游戏数据库运维经验分享
搜狐畅游 叶金荣 游戏数据库运维经验分享guiyingshenxia
 
搜狐 窦喆 Sohu-sagent
搜狐 窦喆 Sohu-sagent搜狐 窦喆 Sohu-sagent
搜狐 窦喆 Sohu-sagentguiyingshenxia
 
华为 余洲 定制化服务器
华为 余洲 定制化服务器华为 余洲 定制化服务器
华为 余洲 定制化服务器guiyingshenxia
 
百度 刘宁 系统也智慧
百度 刘宁 系统也智慧百度 刘宁 系统也智慧
百度 刘宁 系统也智慧guiyingshenxia
 
阿里云 张旭 集群运维管理平台
阿里云 张旭 集群运维管理平台阿里云 张旭 集群运维管理平台
阿里云 张旭 集群运维管理平台guiyingshenxia
 
阿里巴巴 林钰 网站存储经验谈
阿里巴巴 林钰 网站存储经验谈阿里巴巴 林钰 网站存储经验谈
阿里巴巴 林钰 网站存储经验谈guiyingshenxia
 
Okbuy 李小红 好乐买自动化运维实践
Okbuy 李小红 好乐买自动化运维实践Okbuy 李小红 好乐买自动化运维实践
Okbuy 李小红 好乐买自动化运维实践guiyingshenxia
 
Cisco 刘洋 从“路由”回归“交换”
Cisco 刘洋 从“路由”回归“交换”Cisco 刘洋 从“路由”回归“交换”
Cisco 刘洋 从“路由”回归“交换”guiyingshenxia
 
淘宝 任卿 打造高效能的Cdn系统
淘宝 任卿 打造高效能的Cdn系统淘宝 任卿 打造高效能的Cdn系统
淘宝 任卿 打造高效能的Cdn系统guiyingshenxia
 

Mais de guiyingshenxia (14)

新浪 李晓栋 非商业网络设备的新浪应用之路
新浪 李晓栋 非商业网络设备的新浪应用之路新浪 李晓栋 非商业网络设备的新浪应用之路
新浪 李晓栋 非商业网络设备的新浪应用之路
 
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维
 
新浪 杨海朝 Redis运维之道
新浪 杨海朝 Redis运维之道新浪 杨海朝 Redis运维之道
新浪 杨海朝 Redis运维之道
 
网易 王磊 网易海量数据存储平台的构建和运维
网易 王磊 网易海量数据存储平台的构建和运维网易 王磊 网易海量数据存储平台的构建和运维
网易 王磊 网易海量数据存储平台的构建和运维
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
 
搜狐畅游 叶金荣 游戏数据库运维经验分享
搜狐畅游 叶金荣 游戏数据库运维经验分享搜狐畅游 叶金荣 游戏数据库运维经验分享
搜狐畅游 叶金荣 游戏数据库运维经验分享
 
搜狐 窦喆 Sohu-sagent
搜狐 窦喆 Sohu-sagent搜狐 窦喆 Sohu-sagent
搜狐 窦喆 Sohu-sagent
 
华为 余洲 定制化服务器
华为 余洲 定制化服务器华为 余洲 定制化服务器
华为 余洲 定制化服务器
 
百度 刘宁 系统也智慧
百度 刘宁 系统也智慧百度 刘宁 系统也智慧
百度 刘宁 系统也智慧
 
阿里云 张旭 集群运维管理平台
阿里云 张旭 集群运维管理平台阿里云 张旭 集群运维管理平台
阿里云 张旭 集群运维管理平台
 
阿里巴巴 林钰 网站存储经验谈
阿里巴巴 林钰 网站存储经验谈阿里巴巴 林钰 网站存储经验谈
阿里巴巴 林钰 网站存储经验谈
 
Okbuy 李小红 好乐买自动化运维实践
Okbuy 李小红 好乐买自动化运维实践Okbuy 李小红 好乐买自动化运维实践
Okbuy 李小红 好乐买自动化运维实践
 
Cisco 刘洋 从“路由”回归“交换”
Cisco 刘洋 从“路由”回归“交换”Cisco 刘洋 从“路由”回归“交换”
Cisco 刘洋 从“路由”回归“交换”
 
淘宝 任卿 打造高效能的Cdn系统
淘宝 任卿 打造高效能的Cdn系统淘宝 任卿 打造高效能的Cdn系统
淘宝 任卿 打造高效能的Cdn系统
 

阿里巴巴 叶正盛 数据库性能量化