南大通用GBase 8c性能调优之TPCC调试实操

原文链接:https://www.gbase.cn/community/post/4327

更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

南大通用GBase 8c是一款具有多模多态、高性能、高可用、高安全等特性的企业级事务型((on-line transaction processing, OLTP)数据库,其开发者和使用者也必然关注GBase 8c的TPC-C性能测试。

什么是TPC-C?

“TPC-C是专门针对联机交易处理系统(OLTP系统)的规范,一般情况下也把这类系统称为业务处理系统。1992年7月发布。几乎所有在OLTP市场提供软硬平台的国外主流厂商都发布了相应的TPC-C测试结果,随着计算机技术的不断发展,这些测试结果也在不断刷新。”

——引用自360百科

下面我们对基于GBase 8c的TPC-C测试进行实践操作。

1 TPC-C测试理论

1.1 标准由来

TPC(Transaction Processing Performance Council,事务处理性能委员会)是一个非盈利组织,其成员单位主要是国外计算机相关的软硬件厂商。管理内容主要是制定了商务应用基准程序的标准规范以及性能、价格度量标准,并定期发布测试结果。发展至今,已经形成了OLTP较为规范的性能测试标准。任何厂商或测试人员都可以根据TPC给出的规范,建立自有测试系统或平台。 

TPC-C则是TPC专门针对OLTP系统给出的规范(C指TPC中的C基准程序),使用性能和价格度量。其中,我们主要关注tpmC(transactions per minute,tpm)衡量,其定义是每分钟内系统处理的新订单个数。此外,TPC-C也经常体现系统性能价格比,单位是$/tpmC,定义为系统的总价格(默认$)/tpmC的数值。

1.2 规范概要

OLTP系统具有比较鲜明的特点,这些特点主要表现如下:

多种事务处理并发执行,充分体现了事务处理的复杂性;

在线与离线的事务执行模式;

多个在线会话终端;

适中的系统运行时间和应用程序运行时间;

大量的磁盘I/O数据流;

强调事务的完整性要求(ACID);

对于非一致的数据库分布,使用主键和从键进行访问;

数据库由许多大小不一、属性多样,而又相互关联的数据表组成;

存在较多数据访问和更新之间的资源争夺。

1.3 测试模型

TPC-C测试通用模型假定了一个大型商品批发销售公司,拥有若干分布在不同区域的商品仓库(Warehouse)。当业务扩展的时候,公司将添加新的仓库。每个仓库负责为10个销售区域(District)供货,其中每个销售区域为3000个客户(Customer)提供服务,每个客户提交的订单(Order)中,平均每个订单有10项产品(Item),所有订单中约1%的产品在其直接所属的仓库中没有存货,必须由其他区域的仓库来供货。同时,每个仓库都要维护公司销售的100000种商品的库存记录。

TPC-C测评系统数据库由9张表组成,它们之间的关系如下图:

图中9个实体对应了TPC-C测试中9个数据表,也对应批发模型中参与的对象。Warehouse是仓库,District是区域,每个Warehouse为10个区域提供商品批发,Customer是客户,每个区域有3千个客户,每个客户会产生至少1个订单,每个订单又分为New-Order和Order-line两部分,New-Order是用来标示订单是否为新订单,在完成订单的发货操作后,New-Order中的记录将被删除,Order-line是订单中进行批发的商品订购流水,每个订单有5到10个交易商品。Stock是用来记录Warehouse的库存情况,Item是记录Warehouse中所存储的商品。“+”号表示这种对应关系可能会更多。

1.4 事务说明

该测试模型在OLTP系统中需要处理的交易事务主要为以下几种:

新订单(New-Order):客户输入一笔新的订货交易;

支付操作(Payment):更新客户帐户余额以反映其支付状况;

发货(Delivery):发货(模拟批处理交易);

订单状态查询(Order-Status):查询客户最近交易的状态;

库存状态查询(Stock-Level):查询仓库库存状况,以便能够及时补货。

1.5 测试指标

TPC-C测试的结果主要有两个指标,即流量指标(Throughput,简称tpmC)和性价比(Price/Performance,简称Price/tpmC)。

流量指标(Throughput,简称tpmC):按照TPC组织的定义,流量指标描述了系统在执行支付操作、订单状态查询、发货和库存状态查询这4种交易的同时,每分钟可以处理多少个新订单交易。所有交易的响应时间必须满足TPC-C测试规范的要求,且各种交易数量所占的比例也应该满足TPC-C测试规范的要求。在这种情况下,流量指标值越大说明系统的联机事务处理能力越高。

性价比(Price/Performance,简称Price/tpmc):即测试系统的整体价格与流量指标的比值,在获得相同的tpmC值的情况下,价格越低越好。

2 TPCC测试实操

2.1 BenchmarkSQL工具简介

BenchmarkSQL是一款经典的开源数据库测试工具,内嵌了TPC-C测试脚本,支持Oracle、MySQL、PostgreSQL、SQL Server等众多数据库的基准测试。BenchmarkSQL通过模拟多种事务处理,如新订单、支付操作、订单状态查询、发货、库存状态查询等,来对数据库进行压力测试,从而获得压测值。相较于其他工具,BenchmarkSQL更能贴切地模拟出真实的应用场景,因此越来越多的客户在对数据库进行压测时,更多的选择使用BenchmarkSQL。此外,BenchmarkSQL还提供了一个易于使用的JDBC基准测试程序,与OLTP的TPC-C标准非常相似,使得它成为测试数据库性能的理想选择。

使用BenchmarkSQL进行测试时,用户可以在Linux环境下对其进行配置和运行,通过简单的操作即可测试数据库的性能。支持国外主流数据库和一些国产数据库的测试,显示了其在数据库性能测试领域的广泛应用和适应性。

2.2 基于GBase 8c数据库的BenchmarkSQL调试

2.2.1 测试概述

本文以GBase 8c V5 S5.0.0版本为例,进行基于GBase 8c的TPC-C性能基准测试。测试环境为两台服务器,均采用Kunpeng920 CPU架构和麒麟V10操作系统。一台压力机运行Benchmarksql,一台服务器部署数据库,且负载机与数据库服务器万兆网络非直连状态下(通过万兆交换机路由)。

2.2.2 常用BenchmarkSQL配置参数简介

下图为测试常用的BenchmarkSQL配置(即后面埋数据和压测使用的props.gbase文件)

基本配置参数及其含义如下:

db=postgres:指定了用于压测的目标数据库管理系统为PG系。

driver=org.postgresql.Driver:配置用于PG系的Java数据库连接(JDBC)驱动程序类。

conn = xxx:配置连接字符串,用于连接到运行数据库的主机IP、端口号以及数据库名,上图后面附加参数的含义为是否使用SQL的解析cache、日志等级、批量模式、获取数据的数据量。

user=test_gs:配置将用于认证连接到数据库的用户名。

password=gbase;123:配置指定用户的密码。

warehouses=1000:配置压测中将使用的仓库数量。

loadWorkers=100:配置用于初始数据加载阶段的工作线程数量。

terminals=1000:配置在性能测试期间将使用的模拟终端(用户)数量,即压测并发数。

runTxnsPerTerminal=0:配置每个终端在性能测试期间要执行的事务数量。

runMins=20:配置性能测试的持续时间,单位为分钟。

limitTxnsPerMin=0:配置性能测试期间每分钟可以执行的事务数量上限。

terminalWarehouseFixed=true:指示是否将终端分配到固定的仓库。

newOrderWeight=45:配置在压测工作负载中NewOrder事务的权重。

paymentWeight=43:配置在压测工作负载中Payment事务的权重。

orderStatusWeight=4:配置在压测工作负载中OrderStatus事务的权重。

deliveryWeight=4:配置在压测工作负载中Delivery事务的权重。

stockLevelWeight=4:配置在压测工作负载中StockLevel事务的权重。

2.2.3 基于GBase 8c数据库的BenchmarkSQL使用步骤

在了解了BenchmarkSQL工具配置文件中的常用参数后,可以对数据库进行TPCC压力测试,常用测试流程和步骤可参考如下:

(1)部署GBase 8c数据库后(操作详见《GBase 8c V5_5.0.0_安装部署手册》),连接访问默认postgres数据库,例如执行:

gsql -p 17400 -d postgres -r

(2)创建一个数据库用户 test_gs 并赋予管理员权限

create user test_gs identified by 'gbase;123' profile default;

alter user test_gs sysadmin;

(3)创建一个待测数据库 test_db 归属用户 test_gs

create database test_db encoding 'UTF8' template=template0 owner test_gs;

(4)根据需求配置BenchmarkSQL工具,使用工具向待测数据库埋入数据(该props.gbase文件即为前面提到的BenchmarkSQL配置文件)。

cd benchmarksql-5.0/run

./runDatabaseBuild.sh props.gbase

(5)埋入数据后,继续使用BenchmarkSQL工具对待测数据库进行压力测试(该props.gbase文件同样为前面提到的BenchmarkSQL配置文件)。

cd benchmarksql-5.0/run

./runBenchmark.sh  props.gbase

(6)等待测试时间达到runMins设置的时间后,会输出 tpmC 的指标值。

欢迎大家尝试~~或者过程中有什么疑问或问题,可在评论区指出。

原文链接:https://www.gbase.cn/community/post/4327

更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,001评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,210评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,874评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,001评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,022评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,005评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,929评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,742评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,193评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,427评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,583评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,305评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,911评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,564评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,731评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,581评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,478评论 2 352

推荐阅读更多精彩内容