本测试用于了解Redis Cluster在Kubernetes环境下的性能表现,以及对比Kubernetes环境相比虚机环境的性能差异。
Redis集群架构:4主4从,每个实例1GB内存,1个vCPU Core,开启RDB持久化
Redis版本:5.0.8(基于官方redis:5.0.8-alpine镜像)
Kubernetes Pod IP网段: 172.24.29.1/24
压测主机IP网段:172.24.30.1/24
Kubernetes Pod网络采用BGP-calico组网,与虚机网络打通3层互联,物理机网卡网卡带宽为25gbps
Kubernetes主机配置:88C/756G,CentOS Linux release 7.6.1810 64位,Kernel:3.10.0-957.27.2.el7.x86_64,共三台
压测主机配置:8C/32G,CentOS Linux release 7.3.1611 64位,Kernel:3.10.0-514.6.1.el7.x86_64
选用Redis安装自带的redis-benchmark工具。
由于redis-benchmark无法对Redis Cluster中的所有节点发起连接,因此需要引入一款集群代理工具,我们选择RedisLabs官方推出的Cluster代理产品redis-cluster-proxy,连接池大小设置为20,其它参数保持默认。
1. 20个客户端并发连接,100,000个GET/SET请求,3 bytes payload:
2. 20个客户端并发连接,100,000个GET/SET请求,64 bytes payload:
3. 50个客户端并发连接,1,000,000个GET/SET请求,3 bytes payload:
4. 50个客户端并发连接,1,000,000个GET/SET请求,128 bytes payload:
5. 50个客户端并发连接,1,000,000个GET/SET请求,8k bytes payload:
6. 单节点,20个客户端并发连接,100,000个GET/SET请求,64 bytes payload:
7. 单节点,20个客户端并发连接,100,000个GET/SET请求,64 bytes payload,Redis实例与测试程序同在一台主机
图1: 横坐标为测试编号,纵坐标为测试执行时间(秒); 图2: 横坐标为测试编号,纵坐标为每秒执行请求数。