如何硬件选型
需求
TPS
QPS
connections
RT
该使用什么机器配置
多大CPU: Processors/Cores/Threads
多少内存:Memory
多大磁盘:capacity/IOPS
非常遗憾mysql 没有参与tpcc官方测试, 在没有参照的系统,也没在不同机型不同cpu:mem:io capacity 对比的情况下,如何选出一个大致范围的配置;然后在进行针对的tpcc测试,业务压测来验证实际需求。不烦参照TPCC报告来找一个大致的访问,比如支撑1 tps需要多少cpu,内存,iops等;毕竟TPCC都是金钱游戏,配置具有相当合理性
1.tpcc 测试为了追逐tpmC 排名必然要堆砌硬件资源,造成某种浪费
2.tpcc同时又兼顾了性价比Price/tpmC,厂商为了追逐性价比,必然不敢过度堆砌硬件
3.tpcc与实际业务不同,实际不同业务一个事务可能1-100 条SQL不等,即代表1-100 iops不等;最终需要从业务复杂度入手.
TPCC报告解读
ORACLE ORACLE RAC v11gR2 TPCC
注:分布式/RAC按节点换算
Report Date:December 2,2010
TPC-C Throughput:30249688/27=1120358 tpmC
Processors/Cores/Threads: 4/64/512
Memory: 512GB
capacity/IOPS: 1.76 PB/ 条带化后超100万IOPS写入
tps:threads=36:1 即1thread/vCpus 支撑 36tps
cpu threads:mem=1:1 即1 threads/vCpus 配置1G内存
IOPS:TPS=53:1 即1个事务预留53iops来支撑
https://www.tpc.org/results/fdr/tpcc/Oracle_SPARC_SuperCluster_with_T3-4s_TPC-C_FDR_120210.pdf
Tencent TDSQLv10.3 TPCC
注:分布式按数据节点换算
Report Date:March 28, 2023
TPC-C Throughput:814854791/1650=493851 tpmC
Processors/Cores/Threads: 2/48/96
Memory: 768GB
capacity/IOPS: 42TB/ 条带化后超75万IOPS写入
tps:threads=85:1 即1thread/vCpus 支撑 85tps
cpu threads:mem=1:8 即1 thread/vCpus 配置8G内存
IOPS:TPS=91:1 即1个事务预留91iops来支撑
TTA DB2v11.5.8 TPCC
Report Date:25-Sep-2023
TPC-C Throughput:279185 tpmC
Processors/Cores/Threads: 2/36/72
Memory: 1536GB
capacity/IOPS: 39.68TB/ 条带化后超40万IOPS写入
tps:threads=64:1 即1thread/vCpus 支撑 64tps
cpu threads:mem=1:21 即1 thread/vCpus 配置20G内存
IOPS:TPS=85:1 即1个事务预留85iops来支撑
https://www.tpc.org/results/fdr/tpcc/ttatpccltechkorea_lkg2312fdr2023-09-29~v01.pdf
TTA Goldilocks v3.1 TPCC
Report Date:25-Jan-2024
TPC-C Throughput:50768 tpmC
Processors/Cores/Threads: 1/12/24
Memory: 512GB
capacity/IOPS: 31.23TB/ 条带化后超25万IOPS写入
tps:threads=35:1 即1thread/vCpus 支撑 35tps
cpu threads:mem=1:21 即1 threads/vCpus 配置20G内存
IOPS:TPS=295:1 即1个事务预留295iops来支撑
https://www.tpc.org/results/fdr/tpcc/ttatpccktnf_ke780s1fdr2024-02-25~v01.pdf
由TPCC测试结论
由2010年到2024年的tpcc报告比较
1个vCPUS/Threads 可以支撑 35~85 tps . 建议8~32
1个vCPUS/Threads 应该配置(驱动)内存:1GB~21GB . 建议4G~8G
1个tps 需要多少iops来支撑:51~295. 建议:5~100 iops
即如果需要支撑1000tps/20000qps的业务大致需要硬件如下:
CPU:16core/32vCpus - 64core/128vCpus
内存: 128G -1024 G
iops: 5000 iops - 10万 iops
验证
tpcc
benchsql
业务压测