使用memtier_benchmark测试Redis性能
Memtier_benchmark是Redis Labs推出的一款命令行工具,它能够产生多种流量模式,对Redis实例进行基准测试。该工具提供了丰富的自定义选项和报表功能,通过命令行界面就能够轻松地使用。了解memtier_benchmark更多详情,请访问https://github.com/RedisLabs/memtier_benchmark。
针对DCS Redis实例的性能评估,可以使用memtier_benchmark测试某种规格的实例在某个高并发场景下执行SET或GET时的性能。
测试步骤
- 创建Redis缓存实例。
- 创建3台弹性云服务器(ECS),如果是测试单机或主备实例,创建1台ECS即可。ECS选择与实例相同可用区、VPC、子网和安全组。
- 在每台ECS上安装memtier_benchmark。
该步骤以操作系统为CentOS 8.0为例进行安装。如果需要在Ubuntu系统下安装memtier_benchmark,请参见Ubuntu系统下安装memtier_benchmark。
- 准备工作。
- 下载、编译、安装memtier_benchmark的库。
- 根目录下创建文件夹,用于下载memtier_benchmark。
- 下载memtier_benchmark源码。
git clone https://github.com/RedisLabs/memtier_benchmark.git
如果下载memtier_benchmark源码返回如下报错,请执行git clone https://github.com/RedisLabs/memtier_benchmark.git -b 1.4.0切换分支安装。

- 进入源码目录。
- 编译生成可执行文件memtier_benchmark。
./configure
make
- 将工具安装到系统中。
- 运行帮助命令查看是否安装成功。如果返回memtier_benchmark的参数说明,表示安装成功。
- 每台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}。
- 不断调整客户端连接数,执行4,得到最大的QPS(Query Per Second,表示每秒处理的读写操作数,单位:次/秒)。
- 取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