Sysbench 完全指南
Sysbench 完全指南
Sysbench 是一款开源的、多线程的基准测试工具,广泛应用于数据库、文件系统、内存、CPU 等系统组件的性能评估。它最初由 Peter Zaitsev 和 Alexey Kopytov 开发,如今已成为性能测试领域的事实标准之一。
本指南适用人群
| 角色 | 场景 |
|---|---|
| DBA | 评估 MySQL / PostgreSQL 数据库性能、对比不同配置 |
| 运维工程师 | 服务器选型、存储 I/O 测试、容量规划 |
| 后端开发者 | 应用上线前的性能基线评估 |
| 架构师 | 对比不同硬件 / 云方案的性价比 |
| SRE | 持续性能监控、回归测试 |
教程目录
| 章节 | 标题 | 核心内容 |
|---|---|---|
| 01 | Sysbench 简介 | 什么是 Sysbench、用途与适用场景、与其他工具对比 |
| 02 | 安装与编译 | 各平台安装方法、源码编译、版本选择 |
| 03 | 基础用法 | 命令语法、通用选项、输出解读 |
| 04 | OLTP 标准测试 | oltp_read_write、oltp_read_only 等内置测试详解 |
| 05 | 自定义 Lua 测试 | Lua 脚本编写、自定义测试场景、高级技巧 |
| 06 | MySQL 性能测试 | 连接配置、常用测试场景、调优验证 |
| 07 | PostgreSQL 性能测试 | 连接配置、常用测试场景、与 MySQL 测试对比 |
| 08 | 文件 I/O 测试 | 顺序读写、随机读写、不同 I/O 调度器对比 |
| 09 | CPU 基准测试 | 素数计算、多核扩展性、性能基线 |
| 10 | 内存测试 | 内存带宽、延迟测试、NUMA 分析 |
| 11 | Docker 环境测试 | 容器中运行 Sysbench、编排测试、CI/CD 集成 |
| 12 | 最佳实践 | 测试方法论、结果解读、报告生成、常见陷阱 |
快速开始
如果你已经熟悉基本概念,可以直接使用以下命令快速体验:
# 1. 安装 sysbench
sudo apt install sysbench # Debian/Ubuntu
sudo yum install sysbench # CentOS/RHEL
# 2. CPU 快速测试
sysbench cpu --threads=4 --time=30 run
# 3. 内存快速测试
sysbench memory --threads=4 --time=30 run
# 4. 文件 I/O 快速测试
sysbench fileio --file-test-mode=rndrw --time=30 prepare
sysbench fileio --file-test-mode=rndrw --time=30 run
sysbench fileio --file-test-mode=rndrw cleanup
# 5. MySQL OLTP 快速测试(需要 MySQL 服务)
sysbench oltp_read_write \
--mysql-host=127.0.0.1 \
--mysql-port=3306 \
--mysql-user=root \
--mysql-password=your_password \
--tables=10 \
--table-size=100000 \
prepare
sysbench oltp_read_write \
--mysql-host=127.0.0.1 \
--mysql-user=root \
--mysql-password=your_password \
--tables=10 \
--table-size=100000 \
--threads=8 \
--time=300 \
run
sysbench oltp_read_write \
--mysql-host=127.0.0.1 \
--mysql-user=root \
--mysql-password=your_password \
--tables=10 \
cleanup
版本说明
本教程基于 sysbench 1.0.20+(支持 Lua 5.1 脚本的现代版本)。早期版本(0.4.x 系列)语法有较大差异,请参考各章中的版本兼容说明。
阅读建议
- 初学者:按顺序阅读 01 → 02 → 03 → 09(CPU),快速上手
- DBA:重点阅读 03 → 04 → 05 → 06/07 → 12
- 运维:重点阅读 03 → 08 → 09 → 10 → 11 → 12
- 全栈:通读全文,建立完整知识体系