You need to enable JavaScript to run this app.
文档中心
云服务器

云服务器

复制全文
下载 pdf
性能测试
使用Sysbench测试云服务器性能
复制全文
下载 pdf
使用Sysbench测试云服务器性能
本文介绍如何使用Sysbench测试云服务器的CPU、内存、FileIO负载。​
什么是Sysbench​
Sysbench是一个基于LuaJIT的可编写脚本的多线程基准测试工具。它最常用于数据库基准测试,由于其简单易用,也被用于测试非数据库服务器的工作负载。对于如何使用Sysbench测试数据库,请参考使用SysBench测试MySQL应用性能。​
测试环境​
请参考通过向导购买实例创建一台符合以下条件的实例:​
  • 镜像:本文以Ubuntu 22.04为例。​
  • 存储:为了测试到最大的IOPS和带宽,建议实例挂载的云盘容量大于等于1000GiB。​
说明​
本文给出的测试环境和方法仅供参考,不代表实例的真实最优性能。​
安装Sysbench​
  1. 通过如下方式安装Sysbench。​
  • 方式一:软件源安装​
  • 由于测试CPU、内存均为单机操作,只需要在测试机上执行如下命令,使用Linux操作系统软件源快速安装Sysbench即可。​
  • Ubuntu/Debian​
  • ​
    apt update && apt -y install sysbench​
    ​
  • CentOS​
  • ​
    yum -y install sysbench​
    ​
  • 方式二:软件源码编译安装​
  • 如需在不同操作系统之间进行比较,为避免不同软件源安装的Sysbench版本存在差异,建议参考下文使用相同版本的软件源码编译方式进行安装。​
  1. 执行如下命令,安装依赖包。​
  • Debian/Ubuntu​
  • ​
    apt update​
    apt -y install make automake libtool pkg-config libaio-dev​
    ​
  • RHEL/CentOS​
  • ​
    yum -y install make automake libtool pkgconfig libaio-devel​
    ​
  1. (可选)如有数据库测试需求,请执行如下命令,安装对应的数据库。​
  • Debian/Ubuntu​
  • ​
    apt -y install libmysqlclient-dev libssl-dev # 安装MySQL数据库​
    apt -y install libpq-dev # 安装PostgreSQL数据库​
    ​
  • RHEL/CentOS​
  • ​
    yum -y install mariadb-devel openssl-devel # 安装MySQL数据库(在RHEL/CentOS 5系统中替换为mysql-devel) ​
    yum -y install postgresql-devel # 安装PostgreSQL数据库​
    ​
  1. 依次执行如下命令,下载源代码。本文以1.0.20版本为例。​
  • ​
    wget -c https://codeload.github.com/akopytov/sysbench/zip/refs/tags/1.0.20 -O sysbench-1.0.20.zip​
    unzip sysbench-1.0.20.zip​
    cd sysbench-1.0.20​
    ​
  1. 开始编译。​
  • ​
    ./autogen.sh​
    ./configure # 默认使能MySQL。如果系统中没有mysql库,需改为“./configure --without-mysql”​
    make -j 4​
    make install​
    ​
  1. 安装验证。​
  • Sysbench将安装在“/usr/local/bin/sysbench”目录,您可以执行如下命令检查版本。​
  • ​
    sysbench --version​
    ​
  • ​alt​​
获取Sysbench帮助​
执行如下命令,查看Sysbench的操作方法。​
​
sysbench --help​
​
​alt​​
​
参数​
说明​
testname​
待测试的负载,当前支持fileio(磁盘IO)、cpu、memory、threads(线程)、mutex(互斥锁)。​
command​
通用的操作符,支持prepare、run、cleanup、help,大多数场景只用run。​
options​
根据testname确定,主要用来控制负载的测试参数。​
​
如需了解某项待测试负载的测试参数,请执行sysbench [testname] help命令,例如:​
  • 获取Memory的测试参数:​
  • ​
    sysbench memory help​
    ​
  • ​alt​​
  • 获取FileIO的测试参数:​
  • ​
    sysbench fileio help​
    ​
  • ​alt​​
操作步骤​
​
测试CPU负载
测试Memory负载
测试FileIO负载
​
测试说明​
说明​
除本文介绍的方式外,您也可以参考云服务器性能基准测试,使用UnixBench测试CPU单核/多核性能、SuperPI测试计算时长。​
Sysbench的CPU测试,主要是通过执行大量的计算任务来评估CPU性能。即指定--cpu-max-prime参数的值,默认为10000,Sysbench将“计算1~该值范围内所有的质数(也叫素数,只能被1和自身整除的数)”为1个event,最终CPU的性能表现为每秒可以计算多少个这样的event。​
操作步骤​
  1. 执行如下命令,进行CPU单核或多核性能测试。​
  • ​
    # 单核​
    sysbench cpu --cpu-max-prime=20000 --threads=1 --time=120 run​
    # 多核​
    sysbench cpu --cpu-max-prime=20000 --threads=`nproc` --time=120 run​
    ​
  • ​
    参数​
    说明​
    --cpu-max-prime​
    默认为10000,表示一个event要计算10000以内的质数。​
    --threads​
    线程数,默认为1。取值为1表示Sysbench仅启动1个线程进行质数的计算;指定其他值为对应的多线程数,表示Sysbench会启动多线程同时进行质数的计算。​
    上述多核命令中使用nproc计算测试系统的CPU核数,并指定对应的核数进行测试。​
    --time​
    运行时长,单位秒。默认为10,表示Sysbench会在10秒内循环往复进行质数计算,每完成一轮就叫一个event。​
    ​
说明​
Sysbench还提供--events参数来指定完成多少次event后停止测试,该参数在不同核数下不太容易指定,更建议使用--time参数。​
  1. 结果分析。​
  • 单核​
  • ​alt​​
  • 多核​
  • ​alt​​
  • 从上图可以看出,Sysbench的CPU测试指标为events per second,平均每秒完成的event数,该值越大表示CPU计算性能越强。​
注意​
由于event的设定,不同--cpu-max-prime 参数得到的结果不能相互比较!​
​
最近更新时间:2025.10.09 15:43:41
这个页面对您有帮助吗?
有用
有用
无用
无用