CPU 与数据库基准 —— SPEC CPU、TPC-C、SPECjbb
第九章第二篇专题讲 CPU 和数据库基准——这是服务器采购合同里最常出现的两组数字。
SPEC CPU2017 ——CPU 性能的事实标尺
SPEC CPU 2017 2017 年发布,取代 2006 版。今天数据中心 CPU datasheet 几乎都用它。
四个子套件
graph TB ROOT[SPEC CPU 2017] ROOT --> SR[SPECrate
多任务并行
测吞吐] ROOT --> SS[SPECspeed
单任务
测响应时间] SR --> SRINT[SPECrate Integer
10 个整数程序] SR --> SRFP[SPECrate Floating Point
13 个浮点程序] SS --> SSINT[SPECspeed Integer
10 个整数程序] SS --> SSFP[SPECspeed Floating Point
10 个浮点程序]
实际报告里看到的几个常用名字:
1 | |
base 用规定编译选项(公平比较),peak 允许厂家激进优化(看上限)。真实采购看 base。
怎么读 SPECrate
1 | |
注意:单核高 ≠ 总吞吐高,反之亦然。Intel Xeon SP / AMD EPYC / Ampere AmpereOne 等都有自己 sweet spot——选型时分清自己的 workload 是 throughput-bound 还是 latency-bound。
SPEC CPU 看哪几列
读 SPEC CPU 报告(每条 SUT 一份 PDF + HTML)时关键列:
| 列 | 含义 | 看什么 |
|---|---|---|
| Hardware | CPU、内存、存储、BIOS | 配置基线 |
| Software | OS、编译器、libc、glibc | 软件栈 |
| Tunable | NUMA、Turbo、HT、Power Profile | 调优 |
| Result | base / peak | 实际数字 |
| Energy | 部分报告有功耗 | 能效 |
比较时一定保证:编译器版本、HT 开关、Power Profile 一致——否则结果不可比。
国内查 CPU 性能时的常见情况
1 | |
待补充:鲲鹏 920 / 海光 / AmpereOne 在 SPEC CPU2017 base 公开数字。
SPECpower:能效
SPECpower_ssj2008 测的是”性能 / 瓦”——服务器能效之标尺。
1 | |
数据中心选型 TCO 模型几乎都引用 SPECpower 数字——电费占数据中心 OPEX 30-40%,能效高 10% 一年省几百万电费。
SPECjbb 2015:Java 中间件
jbb 全称 Java Business Benchmark。模拟 ERP / 中间件场景:
1 | |
SPECjbb 2015 是 OLAP-like Java 服务器选型主流尺——金融、电信、政府常用。新版还在持续维护,比退役的 SPEC Web2005 时效性强。
TPC-C —— OLTP 经典
TPC 系列里最经典:模拟电商订单系统。
1 | |
20 世纪 90 年代,TPC(事务处理性能委员会)成立,Benchmark(基准测试)随之走上历史舞台。tpmC 值在国内外被广泛用于衡量计算机系统的事务处理能力,为”每分钟内系统处理新订单个数”的英文缩写。TPMC 测试及发布的成本极高(百万美元级),只有少数厂商的少数设备会在 TPC 官网上发布测试数据。未在官网上发布的数据都是评估出来的。
历史里程碑
1 | |
tpmC 在 2026 年的位置
正式 TPC-C 提交几乎已停滞——发布门槛太高、云时代少有厂家愿意花钱跑。国内合同里”要求 X 万 tpmC”基本是评估值,不是 TPC 官网真实发布。
1 | |
国采、国企招标里仍把 tpmC 作”硬指标”,但实际意义不如 HammerDB 真跑一遍。
HammerDB / sysbench —— 现代 OLTP 测试事实标准
正式 TPC-C 太贵 → 业界用开源工具跑”TPC-C-like” workload:
graph LR HDB[HammerDB
开源, GUI/CLI] SB[sysbench
开源, CLI] HDB --> ORACLE[Oracle / MySQL / PG / MS SQL / Db2] SB --> MYSQL[MySQL / PostgreSQL / TiDB]
HammerDB 实现了 TPROC-C(TPC-C 风格)和 TPROC-H(TPC-H 风格),跑出来的指标叫 NOPM(new orders per minute),和 tpmC 同含义但不发布到 TPC 官网。
实操要点
1 | |
1 | |
待补充:上面数字仅作量级参考,具体看实际配置和调优。
TPC-H / TPC-DS —— 数据仓库 / 大数据
1 | |
云时代 TPC-DS 比 TPC-H 更主流——特别是 数据湖 / Spark / Presto / Trino / ClickHouse 都用 TPC-DS 自我对标。
选型场景
1 | |
数据库基准的真相 —— “选型不能只看 benchmark”
数据库性能受实际数据分布影响巨大:
1 | |
成熟做法:
1 | |
没有 POC 就不敢决定数据库选型——这是 DBA 圈的共识。
CPU + 数据库选型时的几条经验
1 | |
一些命令
1 | |
一张速查
| 场景 | 主基准 | 次要基准 |
|---|---|---|
| CPU 通用计算 | SPEC CPU2017 (rate base) | SPEC CPU2017 (speed base) |
| CPU 能效 | SPECpower | — |
| 单核响应 | SPECspeed_int_base | sysbench cpu |
| Java 中间件 | SPECjbb 2015 | — |
| OLTP(MySQL/PG) | sysbench oltp / HammerDB TPROC-C | TPC-C 官网(参考) |
| OLTP(Oracle/Db2) | HammerDB TPROC-C | TPC-C 官网(参考) |
| 决策支持 | TPC-H | HammerDB TPROC-H |
| 大数据数仓 | TPC-DS | — |
小结
- SPEC CPU2017 是 CPU 通用计算的事实标尺,看 base、看 rate vs speed
- SPECpower / SPECjbb / SPECstorage 各有领域
- TPC-C / tpmC 在合同里仍重要,实际选型用 HammerDB / sysbench
- 数据库选型不能只看 benchmark,必须 POC 真实数据
- 看曲线、看 P99、看长时间持续,不只看峰值
下一篇专题讲 HPC 基准——HPL、HPCG 与 TOP500 的实战。