1.测试相关概念
(1) sysbench: sysbench是一个基于LuaJIT的可编写脚本的多线程基准测试工具。它最常用于数据库基准测试,但也可用于创建复杂的工作负载任务,集成了TPC-C标准测试。
(2)TPC-C: 是一个用于评估数据库联机交易处理(OLTP)能力的业界标准测试。它包含五类主要的业务事务模型:
新订单(New-Order):
客户输入一笔新的订货交易。
支付操作(Payment)
:更新客户账户余额以反映其支付状况。
发货(Delivery)
:发货(模拟批处理交易)。
订单状态查询(Order-Status)
:查询客户最近交易的状态。
库存状态查询(Stock-Level)
:查询仓库库存状况,以便能够及时补货。
TPC-C通过tpmC值(Transactions per Minute)来衡量系统的最大有效吞吐量,这个指标主要关注系统在执行上述几种交易的同时,每分钟可以处理多少个新订单交易。所有交易的响应时间必须满足TPC-C测试规范的要求,且各种交易数量所占的比例也应该满足TPC-C测试规范的要求。
2.测试设置
3.记录参数
-
90th %
:测试中90%的事务响应时间都低于这个值。它是衡量数据库响应时间的一个指标,用于显示绝大多数事务的性能。
-
Maximum
:在测试期间观察到的最长事务响应时间。这个指标对于理解在最糟糕情况下数据库的性能非常重要。
-
Latency
:交易的平均响应时间。
-
Count
:在测试期间执行的特定类型事务的总次数。
-
Percent
:一个特定事务类型占所有事务总数的百分比。
-
Rollback
:在数据库事务处理中,如果事务无法成功完成,则会执行回滚操作,取消所有已进行的更改。此指标显示测试期间发生的回滚次数。
-
Errors
:指在测试过程中遇到的错误次数。这些错误可能是由于各种原因导致的事务失败。
-
Skipped
:在TPC-C的发货(Delivery)事务中,如果某些发货不能在指定时间内完成,它们可能会被标记为“跳过”的发货。这个指标计算了这种情况的次数。
-
tpmC:TPC-C 测试中每分钟处理的数量。
-
tpmTotal:每分钟内处理的事务总数。
4.测试脚本
db=dm
driver=dm.jdbc.driver.DmDriver
conn=jdbc:dm://127.0.0.1:5236
user=benchmarksql
password=Dameng123
//数据库
warehouses=10
//初始仓库中数据的并行数
loadWorkers=10
//压力测试时的终端数量
terminals=1
//To run specified transactions per terminal- runMins must equal zero
runTxnsPerTerminal=0
//To run for specified minutes- runTxnsPerTerminal must equal zero
runMins=2
//Number of total transactions per minute
limitTxnsPerMin=0
//Set to true to run in 4.x compatible mode. Set to false to use the
//entire configured database evenly.
terminalWarehouseFixed=true
//The following five values must add up to 100
newOrderWeight=45
paymentWeight=43
orderStatusWeight=4
deliveryWeight=4
stockLevelWeight=4
// Directory name to create for collecting detailed result data.
// Comment this out to suppress.
resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS
osCollectorScript=./misc/os_collector_linux.py
osCollectorInterval=1
//osCollectorSSHAddr=user@dbhost
osCollectorDevices=net_ens33 blk_sda
5.测试结果示例
数据库数量 |
初始数据库 |
客户端数量 |
每个终端事务 |
运行时长 |
10 |
0 |
1 |
10 |
2 |
TransactionType |
90th % |
Maximum |
Count |
Percent |
Rollback |
Errors |
SkippedDeliveries |
NEW_ORDER |
0.052s |
0.491s |
805 |
46.211% |
0.870% |
0 |
N/A |
PAYMENT |
0.031s |
0.225s |
745 |
42.767% |
N/A |
0 |
N/A |
ORDER_STATUS |
0.046s |
0.492s |
70 |
4.018% |
N/A |
0 |
N/A |
STOCK_LEVEL |
1.301s |
3.915s |
60 |
3.444% |
N/A |
0 |
N/A |
DELIVERY |
0.000s |
0.002s |
62 |
3.559% |
N/A |
0 |
N/A |
DELIVERY_BG |
0.235s |
1.409s |
62 |
N/A |
N/A |
0 |
0 |
指标 |
整体 TPM 值 |
tpmC |
402.00 |
tpmTotal |
871.00 |
参考资料:
1.SUN-甲骨文系统硬软件介绍服务器技术应用太平洋电脑网PConline
2.tpc-c 基准测试简介以及程序的安装、使用_tpc-c控制面板-CSDN博客
3.数据库压测模型TPC-C/TPC-H - HunterHuang - 博客园 (cnblogs.com)