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
这个页面对您有帮助吗?
有用
有用
无用
无用