首页/数据/数据库速查/sysbench 基准压测(OLTP)
性能与调优57 条

sysbench 基准压测(OLTP)

业界通用的 MySQL 压测工具:造数、跑 OLTP 混合读写、观察 QPS/TPS 与延迟分布;压测必须固定数据量、并发与环境。

数据库速查数据更新于 2026-10-13

sysbench 基准压测是什么

sysbench 是常用的 MySQL 压测工具,可以造测试数据、跑 OLTP 读写混合场景,并输出 TPS、QPS 与延迟分布。它的核心价值是给出可比较的基线:数据量、并发数、机器配置、数据库参数和版本都要固定,否则两组结果没有可比性,也无法判断调参是否真的有效。

基本信息

安装方式yum install sysbench / apt install sysbench
常用场景oltp_read_write / oltp_read_only / oltp_point_select
关键参数--tables / --table-size / --threads / --time / --report-interval
三段动作prepare 造数、run 压测、cleanup 清理
隔离要求压测库必须与生产实例分离

典型使用场景

  • 新硬件验收:同等参数下对比新旧机器的 QPS 与延迟
  • 调参对比:只改一组参数,前后各跑一次固定场景
  • 容量评估:按预期业务量推算所需实例规格
  • 寻找拐点:并发逐级上调,看 QPS 何时不再增长
  • 复现问题:在压测环境放大负载,稳定复现线上抖动
  • 评估备份影响:压测同时跑备份,观察延迟变化

安装准备、运行与清理

安装准备、运行与清理
yum install -y sysbench          # 或 apt install sysbench
sysbench oltp_read_write --mysql-host=127.0.0.1 --mysql-port=3306 \
  --mysql-user=bench --mysql-password=强口令 --mysql-db=bench \
  --tables=10 --table-size=1000000 --threads=16 prepare          # 造数
sysbench oltp_read_write --mysql-host=127.0.0.1 --mysql-user=bench \
  --mysql-password=强口令 --mysql-db=bench --tables=10 --table-size=1000000 \
  --threads=16 --time=300 --report-interval=10 run              # 压测 300 秒
sysbench oltp_read_write --mysql-user=bench --mysql-password=强口令 \
  --mysql-db=bench --tables=10 --table-size=1000000 cleanup      # 清理数据

输出指标读法

指标含义看什么
transactions per sec每秒事务数 TPS并发上升时先增后平即拐点
queries per sec每秒查询数 QPS与 TPS 比例反映单个事务的 SQL 数
Latency avg / p95平均与高位延迟平均正常但 p95 飙升说明有长尾
errors / reconnects错误与重连次数非 0 说明连接被打满或超时
thread fairness events线程事件分布严重倾斜说明某个线程拖后腿
压测库必须与生产隔离;--threads 代表并发连接数,超出 CPU 核数后 QPS 不再涨而延迟飙升,这正是你要找的拐点。
压测数据量要明显大于缓冲池,否则数据全在内存里,测出来的是内存带宽而不是磁盘 IO 能力;判断真实承载力前先确认 buffer pool 命中情况。
每次压测前记录基线快照(版本、参数、数据量、并发数、机器规格),结果统一存档;没有基线的调优只能靠感觉,事后无法证明改进幅度。

易错点

  • 压测实例与生产共用,压测流量直接把线上业务打挂
  • 两次压测的数据量或并发数不一致,结论完全不成立
  • 数据量小于缓冲池,得到的 QPS 虚高,上线后达不到
  • 只记录平均延迟,忽略 p95 与 p99 长尾,用户体验与结论相反
  • 压测前忘记清理旧数据或索引,环境和基线漂移导致结果不可复现

数据来源与参考

  • sysbench 官方文档: oltp_read_write
  • MySQL 8.0 Reference Manual: Benchmarking

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌