

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

TPC-C具有以下特点:
1)多个复杂类型事务并发执行
通过模拟批发供应商对客户的销售活动,TPC-C并不仅是体现了某个具体业务,而是代表了大部分销售活动,包含:管理、出售、分发产品和服务。
二、BenchmarkSQL
在测试开始前,TPC-C Benchmark 规定了数据库的初始状态,也就是数据库中数据生成的规则,其中 ITEM 表中固定包含 10 万种商品,仓库的数量可进行调整,假设 WAREHOUSE 表中有 W 条记录,那么:
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 -aLinux localhost.localdomain 4.19.90-24.4.v2101.ky10.aarch64 #1 SMP Mon May 24 14:45:37 CST 2021 aarch64 aarch64 aarch64 GNU/LinuxCPU信息:[halo@localhost ~]$ cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c64 HUAWEI,Kunpeng 920内存信息:[halo@localhost ~]$ free -htotal used free shared buff/cache availableMem: 509Gi 8.0Gi 490Gi 4.0Gi 11Gi 468GiSwap: 4.0Gi 0B 4.0GiSSD硬盘[halo@localhost ~]$ cat /sys/block/sda/queue/rotational0
3.1 调优数据库服务器操作系统内核参数(需根据服务器配置进入调优)
根据不同的数据库调整操作系统内核参数以达到最优效果
3.2 调优数据库基本配置参数
根据不同的机器配置对数据库调整数据库参数以达到最优效果
四、配置benchmarksql-5.0
conn=jdbc:halo://ipaddress:1921/db_namewarehouses=100 #使用 100 个 warehouseloadWorkers=30 #导入数据的并发数terminals=64 #并发数runMins=10 #压测10分钟
./runDatabaseBuild.sh props.halo

nohup ./runBenchmark.sh props.halo &

[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;
end

微信号|Halo Tech