本文介绍 Redis 6.2.5 启用 TLS 功能后,在不同测试场景下的测试结果。

测试环境

测试环境信息数 说明

地域和可用区

所有测试均在北京三区的可用区 B 中完成。

Redis 集群架构

默认架构 1主节点。本次测试以企业型 e3基础型规格为例,集群配置如下:

  • 单线程测试环境基础型2核机型

  • 多线程测试环境基础型8核机型

  • 单线程生产环境企业型e3 2核机型

  • 多线程生产环境企业型e3 8核机型

部署压测工具的机器

采用计算型云服务器,实例规格为 ec3ne.16xlarge.r2,类型为 网络增强计算型ec3ne,64核CPU,128G内存。

测试场景

场景 说明

get

分别在 64、128、246、1024B 数据量下的 get 操作。

set

分别在 64、128、246、1024B 数据量下的 set 操作。

测试目标

准备约 10GB 测试数据,对于不同 Redis Standalone 集群配置场景下,启动 32 个线程、512 个连接、100000 个 Key 的取值范围,测试使用 TLS 端口连接,执行不同数据量 SET 及 GET 操作的性能。

测试步骤

  1. 创建云服务器,配置云服务器与 Redis Standalone 集群在相同可用区、VPC、私有网络和安全组。

  2. 在云服务器上安装 redis-benchmark

  3. (可选)创建并配置证书。具体操作请参见TLS 加密

    说明

    在需要启用 TLS 连接进行加密端口性能测试时,需配置 TLS 加密。

  4. 在云服务上执行相关测试命令

测试命令

  • 执行 get 操作处理 64B 数据。处理 128、256、1024B 数据,需相应修改 -d 参数取值。

     ./src/redis-benchmark -h <node_IP> -p 6479 -n 10000000 -r 100000 -c 512 -t get -d 64 --threads 32 --tls --cert ./tests/tls/redis.crt --key ./tests/tls/redis.key --cacert ./tests/tls/ca.crt
  • 执行 set 操作处理 64B 数据。处理 128、256、1024B 数据,需相应修改 -d 参数取值。

     ./src/redis-benchmark -h <node_IP> -p 6479 -n 10000000 -r 100000 -c 512 -t set -d 64 --threads 32 --tls --cert ./tests/tls/redis.crt --key ./tests/tls/redis.key --cacert ./tests/tls/ca.crt

测试结果

说明

基础型资源环境共享 CPU,QPS 不稳定。

单线程测试环境多线程测试环境 为基础型资源,测出 QPS 值可能浮动较大,以下测试结果仅供可选参考。

GET 测试结果

Value 长度QPS (ops/s)
单线程测试环境,2核8G
64 字节48192
128 字节48311
256 字节47801
1024 字节48234
多线程测试环境,8核16G
64 字节93146
128 字节93171
256 字节93149
1024 字节93129
单线程生产环境,2核16G
64 字节194179
128 字节192445
256 字节192286
1024 字节177598
多线程生产环境,8核16G
64 字节414869
128 字节409601
256 字节427186
1024 字节431537

SET 测试结果

Value 长度QPS (ops/s)
单线程测试环境,2核8G
64 字节41870
128 字节40106
256 字节38463
1024 字节23294
多线程测试环境,8核16G
64 字节128826
128 字节13355
256 字节87636
1024 字节24495
单线程生产环境,2核16G
64 字节134005
128 字节127191
256 字节119208
1024 字节82965
多线程生产环境,8核16G
64 字节4235383
128 字节250000
256 字节227159
1024 字节95986