1月6日,在DC分布式开发者大会上举办了一场“极客夜宵”活动,OceanBase测试专家李帅(花名子行)分享了《OceanBase常见性能测试场景调优》,通过便捷的方式为开发者调整和提升OceanBase数据库性能。
不少人看的意犹未尽,本期直播我们依然请到了子行、海芊两位老师,为大家带来《OceanBase如何进行Benchmark测试及调优》的分享。
什么是Benchmark性能测试
Benchmark性能测试常用于评价操作系统、数据库和中间件以及应用软件的数据处理能力。特别在数据库领域中得到广泛和成功的应用,主要测试响应时间、传输速率和吞吐量等。Benchmark测试中最重要的是标准规范,只要大家都用同一标准规范、同一工具进行系统测试,那么测试结果也就具有了比较意义。常见的Benchmark基准测试有TPC-H、TPC-C等。
年,OceanBase登顶TPC-C榜单,以7.07亿tpmC的在线事务处理性能,打破了自己在年创造的万tpmC的世界纪录。此外,OceanBase是唯一在事务处理(TPC-C)和数据分析(TPC-H)两个领域测试中都获得过第一的中国自研数据库。回顾起来,OceanBase在准备TPC-C、TPC-H这两套权威Benchmark测试的过程中,遇到了很多的困难,也收获了很多经验。
自OceanBase开源以来,我们也收到了用户关于Benchmark测试相关的很多问题,比如在对OceanBase进行Benchmark测试的时候不知道如何适配OceanBase导致测试跑不通,或者好不容易跑通了发现性能不符合预期,甚至遇到某些异常报错不知道怎么排查等等,在这里我们会对Benchmark测试做一个较为深入的讲解,以方便大家获得一些解决思路,主要包括四部分:为什么要做Benchmark基准测试、业界常见工具介绍、如何测试OceanBase、常见的Benchmark注意事项。
为什么要做Benchmark测试
1.数据库版本升级前评估兼容性和性能
数据库的版本升级在运维人员日常工作中时有发生。想象下这么一个场景,业务需要使用Json,而当前使用的MySQL是5.6版本,MySQL只有升级到5.7版本才支持Json。在此情景下,我们需要评估数据库版本升级前后的兼容性和性能。在业务介入前,建议运维同学可以先使用Benchmark测试进行压测和评估。
2.数据库选型替换前评估兼容性和性能
随着国产数据库的快速发展,在替换原有的商业数据库或者其他开源数据库的时候,我们经常会遇到选型的问题,比如从单机的数据库替换成分布式数据库,我们就需要测试其兼容性和性能,测试其水平扩展能力。
3.新系统上线前,评估数据库容量、负载
新系统上线前,我们如何确保大并发负载下业务不停服,数据库可以平稳应对突发大流量?解决该问题需要我们模拟业务访问量,评估单台机器、多台机器的压力,评估其后续扩展性。
4.采购新设备,评估新设备性能
在降本增效的环境下,之前企业中使用的高端存储、商业数据库和小型机可能逐步会被普通的X86、开源数据库,特别是国产数据库所取代。如何确认新的硬件设备性能是否满足业务,可以压测数据库来观察新设备的cpu,memory,io,network的工作负载。
业界Benchmark工具介绍
工欲善其事必先利其器,对数据库的压测,业界有哪些好用的工具呢?每种数据库压测工具是否有各自使用的场景呢?
1.Sysbench
Sysbench是一个基于LuaJIT可编写脚本的多线程基准测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试,常用于评估测试各种不同系统参数下的数据库负载情况。
该工具只能针对单个表进行测试,或者对多个独立的表进行测试,多表之间没有关联,不能模拟接近生产系统的业务模型。Sysbench优点是可以用来测试数据类型兼容性,也可以通过自定义lua脚本以实现不同业务类型的测试。
2.TPC-C
TPC-CBenchmark是一个对OLTP(联机交易处理)系统进行测试的规范,通过使用一个商品销售模型对OLTP系统进行测试,包含五类事务:
●NewOrder–新订单的生成;
●Payment–订单付款;
●OrderStatus–最近订单查询;
●Delivery–配送;
●StockLevel–库存缺货状态分析。
TPC-C使用tpmC值(TransactionsperMinute)来衡量系统最大有效吞吐量(MQTh,MaxQualifiedThroughput),其中Transactions以NewOrderTransaction为准,即最终衡量单位为每分钟处理的新订单数。
3.TPC-H
TPC-H(商业智能计算测试)是美国交易处理效能委员会(TPC,TransactionProcessingPerformanceCouncil)组织制定的用来模拟决策支持类应用的一个测试集。目前,学术界和工业界普遍采用TPC-H来评价决策支持技术方面应用的性能。这种商业测试可以全方位评测系统的整体商业计算综合能力,对厂商的要求更高,同时也具有普遍的商业实用意义,目前在银行信贷分析和信用卡分析、电信运营分析、税收分析、烟草行业决策分析中都有广泛的应用。
TPC-H基准测试由TPC-D(由TPC于年制定的标准,用于决策支持系统方面的测试基准)发展而来的。TPC-H用3NF实现了一个数据仓库,共包含8个基本关系,其主要评价指标是各个查询的响应时间,即从提交查询到结果返回所需时间。TPC-H基准测试的度量单位是每小时执行的查询数(QphH
size),其中H表示每小时系统执行复杂查询的平均次数,size表示数据库规模的大小,它能够反映出系统在处理查询时的能力。TPC-H是根据真实的生产运行环境来建模的,这使得它可以评估一些其他测试所不能评估的关键性能参数。总而言之,TPC组织颁布的TPC-H标准满足了数据仓库领域的测试需求,并且促使各个厂商以及研究机构将该项技术推向极限。
如何测试OceanBase
想必各位对OceanBase的性能都有所耳闻,TPC-C打榜第一,TPC-H打榜第二。那么如何用各种Benchmark流畅丝滑地测试OceanBase,肯定是大家关心的重要一环。在这里我们先行给大家剧透两种Benchmark测试的方法。
03:151.OBD测试
OceanBaseDeployer(简称OBD)是OceanBase开源软件的安装部署工具。同时,OBD也提供了自动进行Benchmark测试的功能,用户输入集群必要的信息,即可自动进行Schema下发、性能调优和工具测试,从而得到一个比较可靠的性能数据结果。
2.手工测试
如果用户出于个性化的测试目的,我们也提供了手工操作Benchmark测试的文档,从安装部署到性能数据分析,“一站式服务”包教包会。
更多方法,更详尽的操作,敬请