三个指标的定义
在数据库性能评估中,经常会遇到 tpmC、tpm、tps 这三个指标,它们的含义如下:
| 指标 | 全称 | 含义 |
|---|---|---|
| tpmC | Transactions Per Minute (TPC-C) | 每分钟处理的新订单事务数(TPC-C 基准) |
| tpm | Transactions Per Minute | 每分钟处理的总事务数 |
| tps | Transactions Per Second | 每秒处理的总事务数 |
注意区别:tpmC 只统计新订单,tpm 和 tps 统计所有类型的事务。
TPC-C 基准测试的事务模型
tpmC 来自 TPC-C 基准测试。TPC-C 模拟的是一个完整的订单处理系统,包含 5 种事务类型:
| 事务类型 | 占比 |
|---|---|
| New Order(新订单) | 45% |
| Payment(支付) | 43% |
| Order Status(订单查询) | 4% |
| Delivery(发货) | 4% |
| Stock Level(库存查询) | 4% |
tpmC 只统计其中的 New Order 事务,但系统实际上同时在处理其他 4 种事务。这就是换算公式中 0.45 这个系数的来源。
换算公式
1 tpmC = (1 / 0.45) / 60 ≈ 0.037 tps
逐步推导
假设系统性能为 1 tpmC,即每分钟处理 1 笔新订单:
第一步:还原总事务数(事务范围扩大:新订单 → 全部事务)
新订单只占总事务的 45%,所以:
总事务/分钟 = 1 ÷ 0.45 ≈ 2.222 tpm
这 2.222 笔事务的分布为:
新订单: 2.222 × 45% = 1.0 笔
支付: 2.222 × 43% ≈ 0.96 笔
订单查询:2.222 × 4% ≈ 0.09 笔
发货: 2.222 × 4% ≈ 0.09 笔
库存查询:2.222 × 4% ≈ 0.09 笔
合计 ≈ 2.222 笔 ✓
第二步:时间单位换算(分钟 → 秒)
总事务/秒 = 2.222 ÷ 60 ≈ 0.037 tps
所以 1 tpmC = 0.037 tps,反过来:
1 tps ≈ 27 tpmC
实际应用举例
如果一个数据库标称 10 万 tpmC:
100,000 tpmC × 0.037 ≈ 3,700 tps
即该系统实际每秒能处理约 3,700 笔事务。
如果业务需求是 5,000 tps:
5,000 tps × 27 = 135,000 tpmC
选型时需要找标称至少 13.5 万 tpmC 的数据库方案。
小结
这个换算的本质就是做两件事:
- 事务范围转换:tpmC 只看新订单(45%),tps 看全部事务 → 除以 0.45
- 时间单位转换:tpmC 按分钟计,tps 按秒计 → 除以 60
厂商喜欢用 tpmC 报数(数字大、好看),实际做容量规划时 tps 更直观。记住 tpmC ÷ 27 ≈ tps 这个速算就够用了。