sysbench 安装指南

sysbench 通用脚本化压测基准工具在 Ubuntu 22.04、CentOS 8、Ubuntu 24.04 三平台的 0→1 完整安装、版本对照与卸载指南,均已实测通过

性能测试与压测sysbench2026/10/09

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.04sysbench 1.0.20+ds-21.0.20是二进制包
apt 在线包Ubuntu 24.04sysbench 1.0.20+ds-6build21.0.20是二进制包
dnf+EPEL 在线包CentOS 8sysbench 1.0.20-5.el8.x86_641.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;"

八、参考链接