暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

Halo数据库之TPC-C基准性能测试

冷狼 2024-11-13
165

一、TPC-C 简介

    TPC 是一系列事务处理和数据库基准测试的规范。其中TPC-C(Transaction Processing Performance Council)是针对 OLTP 的基准测试模型。TPC-C 测试模型给基准测试提供了一种统一的测试标准,可以大体观察出数据库服务稳定性、性能以及系统性能等一系列问题。对数据库展开 TPC-C 基准性能测试,一方面可以衡量数据库的性能,另一方面可以衡量采用不同硬件软件系统的性价比,也是被业内广泛应用并关注的一种测试模型。
    TPC-C模型是以一个在线零售业为例,设计的一种模型。具体架构如下所示:


TPC-C具有以下特点:
    1)多个复杂类型事务并发执行
    2)具有在线和离线交易执行模式
    3)多个会话终端模拟多用户访问
    4)适中的系统运行时间和应用程序运行时间
    5)整个操作有大量的磁盘IO读写操作
    6)交易的事务具有完整的ACID特性
    7)通过主键和二级索引对分布不均匀的数据进行访问
    8)整个TPC-C的库是由许多包含不同字段属性和字段宽度的表组成
    9)存在较多数据访问和更新之间的资源争夺
通过模拟批发供应商对客户的销售活动,TPC-C并不仅是体现了某个具体业务,而是代表了大部分销售活动,包含:管理、出售、分发产品和服务。


二、BenchmarkSQL

    TPC-C 是一个对 OLTP(联机交易处理)系统进行测试的规范,使用一个商品销售模型对 OLTP 系统进行测试,其中包含五类事务:
    NewOrder – 新订单的生成
    Payment – 订单付款
    OrderStatus – 最近订单查询
    Delivery – 配送
    StockLevel – 库存缺货状态分析
在测试开始前,TPC-C Benchmark 规定了数据库的初始状态,也就是数据库中数据生成的规则,其中 ITEM 表中固定包含 10 万种商品,仓库的数量可进行调整,假设 WAREHOUSE 表中有 W 条记录,那么:

    STOCK 表中应有 W * 10 万条记录(每个仓库对应 10 万种商品的库存数据)
    DISTRICT 表中应有 W * 10 条记录(每个仓库为 10 个地区提供服务)
    CUSTOMER 表中应有 W * 10 * 3000 条记录(每个地区有 3000 个客户)
    HISTORY 表中应有 W * 10 * 3000 条记录(每个客户一条交易历史)
    ORDER 表中应有 W * 10 * 3000 条记录(每个地区 3000 个订单),并且最后生成的 900 个订单被添加到 NEW-ORDER 表中,每个订单随机生成 5 ~ 15 条 ORDER-LINE 记录。
    TPC-C 使用 tpmC 值(Transactions per Minute)来衡量系统最大有效吞吐量(MQTh,Max Qualified Throughput),其中 Transactions 以 NewOrder Transaction 为准,即最终衡量单位为每分钟处理的新订单数。


三、Halo数据库TPC-C测试

    测试采用BenchmarkSQL 5.0对数据库进行压力测试、稳定性测试。

本次测试服务器配置信息:
操作系统:银河麒麟
[halo@localhost ~]$ uname -a
Linux localhost.localdomain 4.19.90-24.4.v2101.ky10.aarch64 #1 SMP Mon May 24 14:45:37 CST 2021 aarch64 aarch64 aarch64 GNU/Linux

CPU信息:
[halo@localhost ~]$ cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
64 HUAWEI,Kunpeng 920

内存信息:
[halo@localhost ~]$ free -h
total used free shared buff/cache available
Mem: 509Gi 8.0Gi 490Gi 4.0Gi 11Gi 468Gi
Swap: 4.0Gi 0B 4.0Gi

SSD硬盘
[halo@localhost ~]$ cat /sys/block/sda/queue/rotational
0

    3.1 调优数据库服务器操作系统内核参数(需根据服务器配置进入调优)

           根据不同的数据库调整操作系统内核参数以达到最优效果

    3.2 调优数据库基本配置参数
         根据不同的机器配置对数据库调整数据库参数以达到最优效果


四、配置benchmarksql-5.0

    修改配置benchmarksql-5.0/run/props.halo

conn=jdbc:halo://ipaddress:1921/db_name
warehouses=100 #使用 100 个 warehouse
loadWorkers=30 #导入数据的并发数
terminals=64 #并发数
runMins=10 #压测10分钟

4.1 装载测试数据

./runDatabaseBuild.sh props.halo


4.2 执行压测

nohup ./runBenchmark.sh props.halo &


4.3 记录tpmTotal值
    在上一步的输出结果中的最后一行会输出类似以下的tpmTotal值,将其记录在测试结果中

INFO jTPCC : Term-00, Measured TpmTOTAL = 1041906.85


4.4 删除测试数据

[root@localhost run]# ./runDatabaseDestroy.sh props.halo
# ------------------------------------------------------------
# Loading SQL file ./sql.common/tableDrops.sql
# ------------------------------------------------------------
drop table bmsql_config;
drop table bmsql_new_order;
drop table bmsql_order_line;
drop table bmsql_oorder;
drop table bmsql_history;
drop table bmsql_customer;
drop table bmsql_stock;
drop table bmsql_item;
drop table bmsql_district;
drop table bmsql_warehouse;
drop sequence bmsql_hist_id_seq;


    TPC-C测试是一种广泛使用的基准测试,可用于评估关系数据库管理系统的性能。通过模拟在线事务处理环境并使用多种事务类型,TPC-C测试可以帮助企业选择最适合其需求的RDBMS,并帮助优化其数据库配置和硬件资源。
    本次测试结果仅供参考,测试需要结合实际情况,考虑硬件资源配置,以及网络等。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论