Redis压测工具redisbenchmark

2023年 8月 15日 75.4k 0

redis-benchmark 压测参数

参数 参数说明
-h redis 连接地址
-p redis端口号,不写默认为6379,tls默认为6479
-a redis 实例的用户账号密码,无密码时可不写。如果是default账号,直接写<paasword>即可。如果是新创建的账号,则填写<user>:<password>
-n 测试的总请求数,可设置较大的值以持续压测
-r 随机使用key数量,即使用多少个不同Key
-c 并发的客户端连接数
-d SET或GEt所操作的值的结果大小,单位为字节(Byte)
-t 需要执行的测试命令,如SET、GET
--threads 启动多线程压测,并指定线程个数
--cluster 启动集群模式压测,测试整个redis cluster
--tls 启用安全TLS连接
--cert 用于进行身份验证的客户端证书
--key 用于进行身份验证的私钥文件
--cacert 用于验证的CA证书文件

redis-benchmark 测试指标

指标 说明
QPS 表示每秒处理的操作数,单位为次(秒)

安装redis-benchmark工具

  1. [root@k8s-02 opt]# wget https://download.redis.io/releases/redis-6.2.5.tar.gz
  2. [root@k8s-02 redis-6.2.5]# tar xf redis-6.2.5.tar.gz && cd redis-6.2.5
  3. [root@k8s-02 redis-6.2.5]# make && make install

安装完成后在src目录下生成redis-benchmark二进制

redis-benchmark 常见压测案例

这里我们已经创建好redis-cluster,我们在k8s节点上直接执行,进行压测工作

  1. [root@k8s-01 ~]# kubectl get svc -n redis
  2. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
  3. redis-cluster ClusterIP 10.96.64.112 <none> 6379/TCP 49d

具体压测数据 10GB测试数据,set 1024字节数据,启动32个线程、512连接、100000个key的取值范围

  1. [root@k8s-node2 redis-6.2.5]# ./src/redis-benchmark -h 10.96.64.112 -p 6379 -n 10000000 -r 100000 -c 512 -t set -d 1024 --threads 32 --cluster -a redis123
  2. Cluster has 3 master nodes:
  3. Master 0: 35af7e1463aec91be23dec0266682ac0b52da262 10.244.1.12:6379
  4. Master 1: f5039b4035bbc66f0562efdd2e91bc4a28064d4f 10.244.1.10:6379
  5. Master 2: 14813ef24b9f5ca34151ed6eaad21af1f885d6c9 10.244.2.109:6379
  6. SET: rps=90000.0 (overall: 36413.7) avg_msec=7.698 (overall: 13.670))6))
  7. ...
  8. #因为我这里是E5服务器,我们等待压测完毕即可
  9. #上面的相关参数可以参考上面的参数表,这里不再过多解释

在压测过程中,我们可以明显的看到redis-cluster使用资源的占用情况

我这里没有配置redis-cluster pod资源限制,所以redis-cluster pod是动态扩容的方式

压测结果如下

根据图中压测结果,我们可以判断我们redis-cluster集群QPS(每秒请求)数值大概为29350.30

QPS详解: QPS即每秒查询率,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。QPS = req/sec = 请求数/秒,即每秒的响应请求数,也即是最大吞吐能力

相关文章

KubeSphere 部署向量数据库 Milvus 实战指南
探索 Kubernetes 持久化存储之 Longhorn 初窥门径
征服 Docker 镜像访问限制!KubeSphere v3.4.1 成功部署全攻略
那些年在 Terraform 上吃到的糖和踩过的坑
无需 Kubernetes 测试 Kubernetes 网络实现
Kubernetes v1.31 中的移除和主要变更

发布评论