Sysbench 系统基准测试教程

Sysbench 是一款多用途的系统性能基准测试工具,可以对 CPU 计算能力、内存带宽、文件 I/O 性能和 MySQL/PostgreSQL 数据库性能进行全面评估。它是 VPS 性能评测中使用最广泛的工具之一,很多 VPS 评测文章中的 CPU 跑分数据就是通过 sysbench 获得的。本文将详细介绍如何在搬瓦工 VPS 上使用 sysbench 进行系统基准测试。

一、安装 Sysbench

1.1 在 Ubuntu/Debian 上安装

apt update
apt install sysbench -y
sysbench --version

1.2 在 CentOS/RHEL 上安装

yum install epel-release -y
yum install sysbench -y

1.3 从源码编译安装最新版

apt install make automake libtool pkg-config libaio-dev libmysqlclient-dev libssl-dev -y
git clone https://github.com/akopytov/sysbench.git
cd sysbench
./autogen.sh
./configure
make -j$(nproc)
make install

二、CPU 性能测试

sysbench CPU 测试通过计算素数来评估 CPU 的运算能力。

2.1 单线程 CPU 测试

# 单线程测试,计算 10000 以内的素数
sysbench cpu --cpu-max-prime=10000 --threads=1 run

2.2 多线程 CPU 测试

# 使用所有可用 CPU 核心
sysbench cpu --cpu-max-prime=20000 --threads=$(nproc) run

2.3 解读 CPU 测试结果

# 结果示例
# CPU speed:
#     events per second:  1250.35
#
# Latency (ms):
#          min:    0.79
#          avg:    0.80
#          max:    1.25
#          95th percentile:  0.81

关键指标是 events per second(每秒事件数),数值越高表示 CPU 性能越强。搬瓦工常规 KVM 方案单核一般在 800-1500 之间。

三、内存性能测试

3.1 内存读取测试

# 测试内存读取带宽
sysbench memory --memory-block-size=1M --memory-total-size=10G --memory-oper=read --threads=1 run

3.2 内存写入测试

# 测试内存写入带宽
sysbench memory --memory-block-size=1M --memory-total-size=10G --memory-oper=write --threads=1 run

3.3 多线程内存测试

# 多线程内存读写
sysbench memory --memory-block-size=1M --memory-total-size=20G --memory-oper=read --threads=$(nproc) run

四、文件 I/O 性能测试

文件 I/O 测试分为准备、运行和清理三个阶段。

4.1 准备测试文件

# 创建总计 2GB 的测试文件
sysbench fileio --file-total-size=2G prepare

4.2 顺序读写测试

# 顺序读取
sysbench fileio --file-total-size=2G --file-test-mode=seqrd --time=60 --threads=1 run

# 顺序写入
sysbench fileio --file-total-size=2G --file-test-mode=seqwr --time=60 --threads=1 run

4.3 随机读写测试

# 随机读取
sysbench fileio --file-total-size=2G --file-test-mode=rndrd --time=60 --threads=4 run

# 随机写入
sysbench fileio --file-total-size=2G --file-test-mode=rndwr --time=60 --threads=4 run

# 随机混合读写
sysbench fileio --file-total-size=2G --file-test-mode=rndrw --time=60 --threads=4 run

4.4 清理测试文件

sysbench fileio --file-total-size=2G cleanup

五、MySQL 数据库性能测试

5.1 准备测试数据库

# 创建测试数据库
mysql -u root -p -e "CREATE DATABASE sbtest;"

# 准备测试数据(10 张表,每张 10000 行)
sysbench /usr/share/sysbench/oltp_read_write.lua \
    --mysql-host=127.0.0.1 \
    --mysql-port=3306 \
    --mysql-user=root \
    --mysql-password=yourpassword \
    --mysql-db=sbtest \
    --tables=10 \
    --table-size=10000 \
    prepare

5.2 OLTP 读写混合测试

sysbench /usr/share/sysbench/oltp_read_write.lua \
    --mysql-host=127.0.0.1 \
    --mysql-port=3306 \
    --mysql-user=root \
    --mysql-password=yourpassword \
    --mysql-db=sbtest \
    --tables=10 \
    --table-size=10000 \
    --threads=8 \
    --time=60 \
    --report-interval=10 \
    run

5.3 只读测试

sysbench /usr/share/sysbench/oltp_read_only.lua \
    --mysql-host=127.0.0.1 \
    --mysql-port=3306 \
    --mysql-user=root \
    --mysql-password=yourpassword \
    --mysql-db=sbtest \
    --tables=10 \
    --table-size=10000 \
    --threads=8 \
    --time=60 \
    run

5.4 只写测试

sysbench /usr/share/sysbench/oltp_write_only.lua \
    --mysql-host=127.0.0.1 \
    --mysql-port=3306 \
    --mysql-user=root \
    --mysql-password=yourpassword \
    --mysql-db=sbtest \
    --tables=10 \
    --table-size=10000 \
    --threads=8 \
    --time=60 \
    run

5.5 清理测试数据

sysbench /usr/share/sysbench/oltp_read_write.lua \
    --mysql-host=127.0.0.1 \
    --mysql-user=root \
    --mysql-password=yourpassword \
    --mysql-db=sbtest \
    --tables=10 \
    cleanup

六、VPS 综合性能测试脚本

#!/bin/bash
echo "===== VPS 综合性能测试报告 ====="
echo "测试时间: $(date)"
echo "系统: $(uname -r)"
echo "CPU: $(grep 'model name' /proc/cpuinfo | head -1 | cut -d: -f2)"
echo "内存: $(free -h | grep Mem | awk '{print $2}')"
echo ""

echo "--- 单线程 CPU 测试 ---"
sysbench cpu --cpu-max-prime=20000 --threads=1 run | grep "events per second"

echo "--- 多线程 CPU 测试 ---"
sysbench cpu --cpu-max-prime=20000 --threads=$(nproc) run | grep "events per second"

echo "--- 内存读取测试 ---"
sysbench memory --memory-block-size=1M --memory-total-size=10G --memory-oper=read run | grep "transferred"

echo "--- 内存写入测试 ---"
sysbench memory --memory-block-size=1M --memory-total-size=10G --memory-oper=write run | grep "transferred"

echo "--- 文件 I/O 测试 ---"
sysbench fileio --file-total-size=2G prepare > /dev/null 2>&1
sysbench fileio --file-total-size=2G --file-test-mode=rndrw --time=30 --threads=4 run | grep -E "reads/s|writes/s|fsyncs/s"
sysbench fileio --file-total-size=2G cleanup > /dev/null 2>&1

echo ""
echo "测试完成!"

七、不同线程数的性能对比

# 测试不同线程数下的 CPU 性能
for threads in 1 2 4 8; do
    echo "线程数: $threads"
    sysbench cpu --cpu-max-prime=20000 --threads=$threads run | grep "events per second"
done

总结

Sysbench 是评估 VPS 和服务器综合性能最常用的工具。通过 CPU、内存、文件 I/O 和数据库四个维度的测试,可以全面了解系统的性能水平。建议在搬瓦工 VPS 到手后立即运行 sysbench 记录基线性能数据,便于日后性能对比。更专业的磁盘测试可以参考 Fio 磁盘基准测试教程,压力测试可以参考 Stress-ng 系统压力测试教程。选购搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的优惠,通过 bwh81.net 进入官网购买。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。