您好,欢迎访问三七文档
数据库性能量化阿里巴巴B2B-运维部-DBA叶正盛Aboutme•姓名:叶正盛•阿里巴巴数据库技术专家•国家认证系统分析师、高级项目经理•10余年软件开发及管理经验•从事过微机监控、外贸、进销存、ERP系统设计开发•从事过省级电力信息化建设•我的博客:•新浪微博:内容•硬件与数据库相关性能指标介绍•业务指标转变为数据库技术指标实例•什么时候做数据库拆分?•SSD给数据库带来什么变化?硬件与数据库相关性能指标•磁盘–1秒钟可以从磁盘随机访问多少次?•网络–网络延时与网络带宽•内存–访问内存一个数据要多少时间?•CPU–对数据库CPU最重要的是什么?CPU内存硬盘网卡存储磁盘性能量化10K3.5寸SAS15K3.5寸SAS10K2.5寸SAS15K2.5寸SAS延时(等待时间)3ms2ms3ms2ms延时(寻道时间)3.5ms3.5ms3ms3msIOPS-8KB153(333)181(500)150(333)200(500)内部平均带宽130MB/s160MB/s130MB/s160MB/s影响性能的主要因素:转速、盘片大小、磁存储密度网络性能量化•100Mbps/1Gbps/10Gbps•带宽:10MB/s,100MB/s,1000MB/s•本地机房延时:50us-1msmkingping10.20.149.82PING10.20.149.82(10.20.149.82)56(84)bytesofdata.64bytesfrom10.20.149.82:icmp_seq=0ttl=64time=0.124ms64bytesfrom10.20.149.82:icmp_seq=1ttl=64time=0.109ms64bytesfrom10.20.149.82:icmp_seq=2ttl=64time=0.110ms64bytesfrom10.20.149.82:icmp_seq=3ttl=64time=0.109ms64bytesfrom10.20.149.82:icmp_seq=4ttl=64time=0.110ms1Gbps网络Netperf测试结果•数据库TCP包请求表现116882122137944769201417122565122691202864642882240500001000001500002000002500003000003500001248163264128256并发TPS网络延时与网络带宽•网络延时=处理时间+传输时间+传播时间–处理时间=网络设备数据包处理时间(主机、交换机、路由器等等)–传输时间=数据量/物理链路网络带宽–传播时间=两地距离*2/200000•Socket缓冲区大小(buffer_size)•远距离网络单线程带宽≈buffer_size/2/latency•实例,A到B网络延时15ms,单线程测试结果:•缓冲区大小16K,传输带宽约600KB/s•缓冲区大小40K,传输带宽约1.6MB/s•缓冲区大小400K,传输带宽约15MB/sCPU架构流水线运算工艺主频缓存CPU缓存、内存•Cache延时0.5-30ns•Cache带宽10-100GB/s•CacheLine32-128Bytes•主存延时–30-200ns•主存带宽–2GB/s-12GB/s寄存器L1(1ns)L2(5ns)L3(15ns)主存(80ns)CPU单核性能•执行Oracle数据库的hash及排序比较运算0200400600800100012001400160018001毫秒执行HASH运算次数1毫秒执行排序比较次数Oracle数据库在1秒可以做什么次数动作10连接数据库100磁盘物理读,注:非SSD硬盘1000简单SQL硬解析,select*fromtwherepk=?10000简单SQL软解析100000逻辑读1000000Hash运算,10字节排序,取Sysdate4000000简单函数运算,如substr、lower之类的函数CPU:INTEL2GHz,单核测试以下数据与机器硬件性能、Oracle版本、参数关系密切,数据仅供数量级内的参考,仅用于快速评估实例分析•普通商品管理子系统•20万商家,5万活跃会员•2000万商品•平均每个商品信息基本信息300字节,详细信息8K•业务高峰期4小时业务指标-技术指标业务功能会员操作次数总操作次数返回记录数总返回记录数数据大小总数据大小登录210000011000001000100000000商品列表5025000002050000000600015000000000查看商品明细20010000000110000000800080000000000新增商品210000011000008000800000000修改商品50250000012500000800020000000000删除商品15000015000050025000000总计15250000627500001.15925E+11每秒指标应用QPS1059存储IOPS4358网络带宽8050347(8MB/s)活跃会员数:5万,业务高峰时段:4小时(9:30-11:30,14:30-16:30)分表、分区•活动数据与历史数据分离:(分表、分区、压缩)–工作流(任务流、工单),按状态分表分区–历年帐务记录,按年月分表分区人员待办工单查询Select*frombpm_workwhereuser_id=‘0001’andstatus=‘new’statususer_id…new0002…closed0001…new0002…new0003…closed0003…new0008…closed0001…new0001…new0001…closed0001…closed0002…new0002…closed0003…closed0006…new0007…statususer_id…new0001…new0002…new0001…new0008…new0003…new0001…statususer_id…closed0001…closed0006…closed0007…closed0002…closed0001…closed0003…closed0002…closed0001…closed0001…数据聚集•核心数据聚集(聚集索引、单表聚簇)–一对多关系–会员发布商品–会员交易记录–博客评论、反馈blog_iduser_namecomment0002AAxxxx0001AAxxxx0002CCxxxx0003DDxxxx0003BBxxxx0008AAxxxx0001EExxxx0001DDxxxx0001GGxxxx0001BBxxxx0002RRxxxx0002AAxxxx0003TTxxxx0006BBxxxx0007DDxxxxblog_iduser_namecomment0001EExxxx0001DDxxxx0001GGxxxx0001BBxxxx0001AAxxxx0002AAxxxx0002CCxxxx0002RRxxxx0002AAxxxx0003DDxxxx0003BBxxxx0003TTxxxx0006BBxxxx0007DDxxxx0008AAxxxx单机性能瓶颈•拆分–水平拆分–垂直拆分–读写分离–异地容灾•过早拆分增加系统的复杂度及维护成本,过晚拆分影响业务发展。•设计师一定要心中有数,而不是人云亦云。数据库拆分指标界限•QPS?•TPS?•日志数据写入量?•数据容量?•IOPS达到多少?40000/s2000/s20MB/s一天可以通过网络备份全部数据没关系SSD•固态硬盘(SolidStateDisk)•接口:USB、eSATA、SATA、SAS、FC、PCI-ESSDVS磁盘指标15KSAS磁盘普通企业应用SSDPCI-ESSD延时5ms100us30us带宽150MB/s250MB/s700MB/sIOPS(8KB)2001500060000价格GB/5元GB/20元GB/100元工作功耗15W5W25W空闲功耗10W0.1W12WSSD方向•带宽接近内存(3年)•容量超过磁盘(2年)•价格GB/5元(3年)•新的硬盘外置接口,比SAS、SATA性能更好(5年)SSD对数据库性能的影响•IOPS提高了100倍,按ID条件类型的查询性能大幅提升,memcached类上级缓存的提升性能不明显,缓存失效也不会产生雪崩效应;•索引的聚簇因子作用变小,聚集索引、簇表、索引组织表的性能提升不明显;•SSD顺序写性能与磁盘没有优势,所以日志文件,归档文件放在SSD上性价比较低。SSD对数据库发展的影响•采用SSD后,IOPS存在大量富余资源,传统关系型数据库已经不能满足硬件发展的需要;•关系型数据库更多从SQL技术性能方面考虑,适合于表格关系,但是人类思维及现实信息更像是网状关系,SSD可能会让网状关系数据库有新的崛起。SSD与网状数据库年龄照片资产血源房子称呼家庭工作同事个人聚会30岁生日聚会信息KVvsRDBMSonSSDKVRDBMSSSDKV数据库与传统数据库对SSD是同等起步,但SSD会让传统数据库满足更多性能需求场景,KV数据库在性能方向优势变小,所以需要在功能、易用性、可维护性方面突破,MongoDB就有它的亮点。谢谢!
本文标题:数据库性能量化
链接地址:https://www.777doc.com/doc-3359563 .html