【GaussDB国庆献礼】数据库性能测评Benchmark简介
最经典的数据库性能benchmark是TPC系列。TPC(Transaction Processing Performance Council,事务处理性能委员会)是一个非盈利组织,1988年8月成立,总部设在美国旧金山。从2009年起,TPC组织每年随VLDB组织一个会议TPCPC( Technology Conference on Performance Evaluation and Benchmarking (TPCTC)),用于探索在benchmark领域的新进展和突破。
TPC的会员主要是计算机系统公司,包含数据库和操作系统公司,也包含系统集成、市场研究公司。共有超过25个会员分布在全球。TPC会员包括两类,Full membership年费是15000美元,associate membership年费是1500美元。TPC主要由会员volunteer运转,每5年召开一次general council meeting。参与会员可以获取全部TPC数据和内部会议内容。
TPC的创始人是Omri Serlin(已于2013年去世),Tom Sawyer(是TPC的第一个auditor,提出了TPC-A,在IBM参与网格数据库、DB2设计)。Jim Gray作为工业界leader也参与了TPC的创建。
TPC不给出基准程序的代码,而只给出基准程序的标准规范(Standard Specification)。任何厂家或其它测试者都可以根据规范,最优地构造出自己的系统(测试平台和测试程序)。为保证测试结果的客观性,被测试者(通常是厂家)必须提交给TPC一套完整的报告(Full Disclosure Report),包括被测系统的详细配置、分类价格和包含五年维护费用在内的总价格。该报告必须由TPC授权的审核员核实(TPC本身并不做审计)。现在全球只有3个审核员,全部在美国。
TPC包含一系列的benchmark,用于数据库、大数据等多个领域。
领域 | OLTP | Decision Support | Virtualization | Big Data | IoT | Common specifications |
TPC-C | TPC-H | TPC-VMS | TPCx-HS V1 | TPCx-IoT | TPC-Energy | |
TPC-E | TPC-DS | TPCx-V | TPCx-HS V2 | TPC-Pricing | ||
TPC-DI | TPCx-HCI | TPCx-BB |
与数据库密切相关的就是TPC-C、TPC-E、TPC-H、TPC-DS、TPC-DI。
TPC-C模拟一系列用户在数据库上执行订单输入事务(1992年被批准)。包含四种事务:输入和支付订单、记录支付、检查订单状态、检测库存。TPC-C包含了5中不同类型、复杂度的事务并发,在线执行或者进入队列延迟执行。事务特征包括:
· 多种复杂度的事务类型同时执行
· 在线和延迟事务执行模式
· 多个在线终端会话
· 稳健的系统和应用执行时间
· Significant磁盘输入输出
· 事务完整性(ACID)
· 数据非均匀分布
· 数据库包含多个表,大小、属性、关系都有差异
· 数据访问和升级竞争
TPC-C的测量方式是每分钟的新订单事务数,测量单位是tpmC,以及每个事务的开销$/tpmC。
TPC-C榜单都被Oracle、IBM占领,SQL Server最优成绩只能排第17位。Oracle自1996年Oracle 7起进行TPC-C测试,2003年Oracle 10g基于HP安腾服务器达到100w tpmc,2013年Oracle11g基于SPARC T5-8达到单机点855wtpmc。TPC-C榜首是2010年Oracle在27节点的SPARC SuperCluster集群实现的,达到了3024w tpmc。
从1996年起,IBM、Oracle、SQL Server一直在刷新榜单,从最初的1000多tpmc,一直到2010年的3000w。到2013年后,这几家厂商都停止了TPC-C测试,估计是再也没有超越Oracle单机855w tpmC的记录了吧。
排序 | 时间 | tpmC | 数据库 | 节点数 | 服务器 | 服务器参数 |
1 | 2010-12-02 | 3024w | Oracle 11g2,RAC,partitioning | 27 | SPARC SuperCluster with T3-4 Servers; | 4路 SPARC T3,1.65GHz,16核;512GB内存;1.76PB |
2 | 2010-8-17 | 1036w | DB2 9.7 | 3 | IBM POWER 780 Model 9179-MHB | 8路 POWER7 3.86GHz,8核;82TB |
3 | 2013-03-26 | 855w | Oracle 11g2,RAC,partitioning | 1 | SPARC T5-8 server | 8路 SPARC T5 3.6GHz;16核;4TB内存;344TB |
7 | 2012-6-10 | 505w | Oracle 11g2 EE | 1 | Sun Server X2-8 | 8路 Intel Xeon E7-8870 2.4GHz;4TB内存;284TB |
17 | 2010-8-30 | 180w | SQL Server2005 | 1 | HP | 4路 8核 Intel 2.26GHz;1TB内存;总存储64.6TB |
TPC-E,是一种新的OLTP负载,利用数据库建模佣金公司及客户,生成交易、账户查询、市场研究等食物。佣金公司与金融市场交互,代表客户执行订单,更新相关庄户信息。
该benchmark是可扩展的,即客户数量可以变化。测量单位是每秒事务次数,tps。
TPC-E的榜单被SQL-Server占据。
TPC-DI(Data Integration),即ETL。
TPC-H是一种决策支持benchmark,包含一系列业务导向的即席查询和并发数据修改。测量单位是每小时查询次数QphH@size,以及$QphH@size。
TPC-H是一款面向商品零售业的决策支持系统测试基准,它定义了8张表,22个查询,遵循SQL92。TPC- H 标准对数据库系统中的数据量有严格、明确的规定。用SF 描述数据量,1SF 对应1 GB 单位,SF 由低到高依次是1、10、30、100、300、1 000、3 000、10 000。即1GB、10GB、30GB、100GB、1TB、3TB、10TB。SF 规定的数据量只是8个基本表的数据量,不包括索引和临时表。因此实际测试时要预留更大的存储空间。
交易型数据库也要进行TPCH测试,如SQL Server、Oracle等。
TPC-H的榜单:有效榜单
历史榜单
TPC-DS:以零售产品供应商场景建模几个通用决策支持系统,包括查询和数据维护(2015年发布TPC-DS 2.0)。
该系统特点:
· 测试大规模数据
· 对实际商业问题给出答案
· 执行需求多样或复杂的查询(ad-hoc,报告,迭代OLAP,数据挖掘)
· 高CPU和IO负载
· 通过数据库维护函数周期地与OLTP数据库同步
· 运行在大数据解决方案上,如RDBMS、Hadoop、Spark等
TPC-DS采用星型、雪花型等多维数据模式。它包含7张事实表,17张纬度表平均每张表含有18列。其工作负载包含99个SQL查询,覆盖SQL99和2003的核心部分以及OLAP。这个测试集包含对大数据集的统计、报表生成、联机查询、数据挖掘等复杂应用,测试用的数据和值是有倾斜的,与真实数据一致。可以说TPC-DS是与真实场景非常接近的一个测试集,也是难度较大的一个测试集。
TPC-DS的榜单只有3个产品,分别是Ali的AnalyticDB,E-mapReduce,以及星环
TPC-H与TPC-DS对比见表。
其他数据库benchmark:
Percona针对MySQL开发了Tpcc-MySQL,可直接使用。
Sysbench:支持MySQL、PG和Oracle的测试。一款开源的多线程性能测试工具,支持如下性能测试:文件系统I/O性能;操作系统内核任务调度器性能;内存分配和传输性能;POSIX线程性能;数据库服务器性能 (MySQL , PostgreSQL)。
Hammerdb作为一个开源的数据库压力测试的基准工具,同时支持Linux和Windows系统,有图形用户界面(GUI)和命令行两种形式。目前支持的数据库包括Oracle, SQL Server, DB2, MySQL, MariaDB, PostgreSQL, Redis等。 Hammerdb模拟了标准的TPC-C和TPC-H两种测试模型。相比于标准的TPC-C和TPC-H,Hammerdb运行成本低,操作简单, 是服务器数据库压力测试的很好选择。
- 点赞
- 收藏
- 关注作者
评论(0)