sysbench 安装指南
sysbench 通用脚本化压测基准工具在 Ubuntu 22.04、CentOS 8、Ubuntu 24.04 三平台的 0→1 完整安装、版本对照与卸载指南,均已实测通过
sysbench 安装指南
目标:在 Ubuntu 22.04、CentOS 8、Ubuntu 24.04 三平台从零安装数据库与服务器压测基准工具 sysbench,实测
sysbench --version均输出 1.0.20,并给出可按 sysbench 自带 oltp 脚本对 MySQL 3306 发起真实压测的验证。
环境信息:操作系统 Ubuntu 22.04(x86_64)、CentOS 8(x86_64)、Ubuntu 24.04(x86_64);sysbench 通过系统包安装,三平台版本均为 1.0.20(各平台打包后缀不同);Ubuntu 包名 sysbench、CentOS 8 经 EPEL 提供;实测压测目标为内网 MySQL 8.4(端口 3306,账号 root)。
前置条件:以 root 执行安装命令;Ubuntu 22.04 / 24.04 需可访问官方或阿里云软件源;CentOS 8 已于 2021-12-31 EOL,需先切到阿里云 centos-vault 归档源(见 2.1);若需用 sysbench 压测 MySQL,建议同时安装 mysql-client 便于建库建表。
💡 说明:sysbench 是一个通用、可脚本化的多线程基准测试工具,通过 Lua 脚本定义不同负载(oltp_read_write、oltp_read_only、point_select 等),既可压测关系型数据库(MySQL/PostgreSQL),也能做 CPU、内存、文件 I/O 基准。Lua 脚本模板随包安装在
/usr/share/sysbench/。
一、Ubuntu 22.04 安装
1.1 Ubuntu 22.04 在线软件包安装(apt,推荐)
sysbench 在 Ubuntu 官方源中,一条命令安装:
apt-get update
apt-get install -y sysbench mysql-client
实测回显(尾部):
Setting up libpq5:amd64 (14.24-0ubuntu0.22.04.1) ...
Setting up mysql-client-8.0 (8.0.46-0ubuntu0.22.04.4) ...
Setting up mysql-client (8.0.46-0ubuntu0.22.04.4) ...
Setting up sysbench (1.0.20+ds-2) ...
Processing triggers for libc-bin (2.35-0ubuntu3.15) ...
验证版本与可用 Lua 脚本:
sysbench --version
ls /usr/share/sysbench/
实测回显:
sysbench 1.0.20
ls 输出(共 12 个 Lua 模板):
bulk_insert.lua oltp_delete.lua oltp_read_only.lua oltp_write_only.lua
oltp_common.lua oltp_insert.lua oltp_read_write.lua select_random_points.lua
oltp_point_select.lua oltp_update_index.lua oltp_update_non_index.lua select_random_ranges.lua
💡 说明:Ubuntu 22.04 的 sysbench 为 1.0.20+ds-2;
+ds表示 Debian/Ubuntu 打的补丁后缀,不影响主版本号 1.0.20。
二、CentOS 8 安装
2.1 CentOS 8 在线软件包安装(dnf + EPEL,推荐)
CentOS 8 的 sysbench 由 EPEL 仓库提供。CentOS 8 已 EOL,先切源到阿里云归档再装 EPEL:
cd /etc/yum.repos.d
sed -i 's|mirrorlist=|#mirrorlist=|g' CentOS-Linux-*.repo
sed -i 's|baseurl=http://mirror.centos.org/$contentdir/$releasever/|baseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/|g' \
CentOS-Linux-BaseOS.repo CentOS-Linux-AppStream.repo CentOS-Linux-Extras.repo CentOS-Linux-PowerTools.repo
dnf makecache
dnf install -y epel-release
dnf install -y sysbench
实测回显(安装摘要):
sysbench-1.0.20-5.el8.x86_64
Complete!
验证版本:
sysbench --version
实测回显:
sysbench 1.0.20
⚠️ 注意:CentOS 8 已 EOL,若
dnf makecache报无法解析mirrorlist.centos.org,按上述sed先禁用 mirrorlist、把 baseurl 指向centos-vault归档;若 baseurl 被注释,执行sed -i 's|^#baseurl=|baseurl=|g' CentOS-Linux-BaseOS.repo CentOS-Linux-AppStream.repo CentOS-Linux-Extras.repo。
三、Ubuntu 24.04 安装
3.1 Ubuntu 24.04 在线软件包安装(apt,推荐)
apt-get update
apt-get install -y sysbench
实测回显(尾部):
Setting up libpq5:amd64 (16.15-0ubuntu0.24.04.1) ...
Setting up sysbench (1.0.20+ds-6build2) ...
Processing triggers for libc-bin (2.39-0ubuntu8.9) ...
验证版本:
sysbench --version
实测回显:
sysbench 1.0.20
💡 说明:Ubuntu 24.04 的 sysbench 打包为 1.0.20+ds-6build2,主版本同样是 1.0.20。
四、版本对照与方案选择
| 安装方案 | 平台 | 包/版本 | sysbench 版本 | 是否需联网 | 安装方式 |
|---|---|---|---|---|---|
| apt 在线包 | Ubuntu 22.04 | sysbench 1.0.20+ds-2 | 1.0.20 | 是 | 二进制包 |
| apt 在线包 | Ubuntu 24.04 | sysbench 1.0.20+ds-6build2 | 1.0.20 | 是 | 二进制包 |
| dnf+EPEL 在线包 | CentOS 8 | sysbench 1.0.20-5.el8.x86_64 | 1.0.20 | 是 | 二进制包 |
| 源码编译 | 三平台通用 | 上游 1.0.x 源码 | 1.0.x | 是 | 自动配置+make |
选择建议:三平台都直接走系统包一行安装,版本统一为 1.0.20;只有需要定制 Lua 或构建最新版时才走源码编译。sysbench 的 Lua 模板三平台均是 12 个,压测行为一致。
五、配置说明
sysbench 是「CLI 参数 + Lua 脚本」型工具,无独立配置文件。运行时所需模块与模板:
- 编译内建测试:fileio、cpu、memory、threads、mutex(可用
sysbench --test=fileio,1.0 用sysbench fileio语法)。 - Lua 模板目录:
/usr/share/sysbench/,含 prepare/run/cleanup 三命令状态机。 - 数据库驱动:sysbench 1.0 内建 mysql 与 pgsql 驱动,
--db-driver=mysql/--db-driver=pgsql。
常用连接参数(以 MySQL 为例):
--mysql-host=127.0.0.1、--mysql-port=3306、--mysql-user=root、--mysql-password=q1w2e3r4、--mysql-db=sbtest。--table-size=10000、--tables=4(建几张表、每表多少行)。--threads=4、--time=10、--events=0(并发、时长、事件数限额)。
六、常见问题(FAQ)
Q1:sysbench: command not found?
未安装。Ubuntu 22.04/24.04 执行 apt-get install -y sysbench;CentOS 8 先切 vault 源再 dnf install -y epel-release && dnf install -y sysbench。
Q2:运行 sysbench fileio / oltp_* 提示找不到测试?
确认模板存在:ls /usr/share/sysbench/。若为空,说明包未装全,重装 sysbench;数据库类脚本还需先 --db-driver=mysql。
Q3:--db-driver 报 only mysql/pgsql?
sysbench 1.0 仅内建这两个数据库驱动,OK,无需额外编译;如要其他数据库请改用专用工具(见 tpcc-mysql / pgbench / YCSB 篇)。
Q4:CentOS 8 dnf install -y epel-release 失败?
先按 2.1 完成 vault 源切换与 dnf makecache,EPEL 本身指向 dl.fedoraproject.org,CentOS 8 主仓解析失败会连带失败。
Q5:压测时数据库报权限不足?
用 root 账号与强口令,或为压测单独建账号并授权:GRANT ALL PRIVILEGES ON sbtest.* TO 'sbtest'@'%' IDENTIFIED BY 'q1w2e3r4';。
七、卸载与清理
Ubuntu 22.04 / 24.04:
apt-get remove -y sysbench
CentOS 8:
dnf remove -y sysbench
清理压测残留的数据库(若不再需要):
mysql -h 127.0.0.1 -uroot -pq1w2e3r4 -e "DROP DATABASE IF EXISTS sbtest;"
八、参考链接
- sysbench GitHub/说明:https://github.com/akopytov/sysbench
- Ubuntu 包 sysbench:https://packages.ubuntu.com/sysbench
- CentOS/EPEL sysbench 包说明:https://src.fedoraproject.org/rpms/sysbench
- sysbench 内置脚本文档:详见《sysbench 配置详解》《sysbench 命令行与运维命令详解》篇。