文档首页/ 分布式缓存服务 DCS/ 用户指南/ 测试实例性能/ 使用memtier_benchmark测试Redis性能
更新时间:2025-10-29 GMT+08:00
分享

使用memtier_benchmark测试Redis性能

Memtier_benchmark是Redis Labs推出的一款命令行工具,它能够产生多种流量模式,对Redis实例进行基准测试。该工具提供了丰富的自定义选项和报表功能,通过命令行界面就能够轻松地使用。了解memtier_benchmark更多详情,请访问https://github.com/RedisLabs/memtier_benchmark

针对DCS Redis实例的性能评估,可以使用memtier_benchmark测试某种规格的实例在某个高并发场景下执行SET或GET时的性能。

测试步骤

  1. 创建Redis缓存实例。
  2. 创建3台弹性云服务器(ECS),如果是测试单机或主备实例,创建1台ECS即可。ECS选择与实例相同可用区、VPC、子网和安全组
  3. 在每台ECS上安装memtier_benchmark

    该步骤以操作系统为CentOS 8.0为例进行安装。如果需要在Ubuntu系统下安装memtier_benchmark,请参见Ubuntu系统下安装memtier_benchmark
    1. 准备工作。
      1. 安装编译所需的工具。

        yum install -y autoconf automake make gcc-c++ git

      2. 启用PowerTools存储库的方法。

        dnf config-manager --set-enabled PowerTools

      3. 安装依赖库。

        yum install -y pcre-devel zlib-devel libmemcached-devel openssl-devel libevent-devel

    2. 下载、编译、安装memtier_benchmark的库。
      1. 根目录下创建文件夹,用于下载memtier_benchmark。

        mkdir /env

      2. 下载memtier_benchmark源码。

        cd /env

        git clone https://github.com/RedisLabs/memtier_benchmark.git

        如果下载memtier_benchmark源码返回如下报错,请执行git clone https://github.com/RedisLabs/memtier_benchmark.git -b 1.4.0切换分支安装。

      3. 进入源码目录。

        cd memtier_benchmark

      4. 编译生成可执行文件memtier_benchmark。

        autoreconf -ivf

        ./configure

        make

      5. 将工具安装到系统中。

        make install

    3. 运行帮助命令查看是否安装成功。如果返回memtier_benchmark的参数说明,表示安装成功。

      memtier_benchmark --help

  4. 每台ECS上执行测试命令。

    如果实例类型为单机、主备、Proxy集群、读写分离,命令为:
    memtier_benchmark -s {IP}  -p {port}  -n {nreqs}  -c {connect_number}  -t 4 -d {datasize} -a {password}

    如果实例类型为Cluster集群,则命令为:

    memtier_benchmark --cluster-mode -s {IP}  -p {port}  -n {nreqs}  -c {connect_number}  -t 4 -d {datasize} -a {password}

    参数参考值:-c {connect_number}:200,-n {nreqs}:10000000,-d {datasize}:32。

    • -s表示实例的域名连接地址或IP地址。
    • -p表示实例的端口,默认为6379。
    • -t表示基准测试使用的线程数量。
    • -c表示客户端连接数。
    • -d表示单条数据大小,单位:byte。
    • -n表示测试包数量。
    • -a表示实例的连接密码,免密连接的实例无需输入-a {password}。

  5. 不断调整客户端连接数,执行4,得到最大的QPS(Query Per Second,表示每秒处理的读写操作数,单位:次/秒)。
  6. 取3台测试ECS得到的每秒操作数总和,即为对应规格的性能数据。

    如果测试Redis集群,建议每台测试ECS各开启两个benchmark客户端。

memtier_benchmark常用选项

  • -s <server>:表示实例的域名连接地址或IP地址。
  • -p <port>:表示实例的端口,默认为6379。
  • -t <threads>:表示基准测试使用的线程数量。例如,-t 4表示使用4个线程。
  • -c <clients>:指定并发客户端的数量。例如,-c 50表示同时有50个客户端并发连接。
  • -d <bytes>:表示单条数据大小,单位:byte。
  • -n <requests>:指定每个客户端发送的请求数。
  • -a <password>:表示实例的连接密码,免密连接的实例无需配置。
  • --ratio <ratio>:指定SET:GET操作的比例。例如,--ratio=1:0表示写读比例为1:0。
  • --test-time <seconds>:表示指定测试的持续时间,单位:秒。该选项不能和-n同时使用。
  • --key-prefix <prefix>:表示压测键的前缀。
  • --key-minimum <min>:表示指定键的最小值,默认值为0。
  • --key-maximum <max_key>:表示指定键的最大值,默认值为10000000。
  • --key-pattern <pattern>:指定键的生成模式。默认值为R:R,表示键是随机生成的。

如需了解更多memtier_benchmark详情,请访问https://github.com/RedisLabs/memtier_benchmark

Ubuntu系统下安装memtier_benchmark

您可以通过以下两种方式在Ubuntu系统下安装memtier_benchmark:

  • 软件包安装
    sudo apt install lsb-release curl gpg
    curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
    echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
    sudo apt-get update
    sudo apt-get install memtier-benchmark
  • 源码编译安装,以下命令通过源码安装2.2.0版本,最新的发布版本请参考发布列表
    sudo apt-get install build-essential autoconf automake \
        libevent-dev pkg-config zlib1g-dev libssl-dev
    cd /tmp && git clone https://github.com/RedisLabs/memtier_benchmark.git -b 2.2.0
    cd memtier_benchmark
    autoreconf -ivf && ./configure && make
    sudo make install 

相关文档