我们当前Redis集群是2个节点2个分片,使用redis-benchmark工具对Redis集群进行性能压力测试。
首先压力测试出2分片2节点的Redis集群性能消耗,然后将集群扩容到4个节点,再测试4节点4分片的集群压力性能,进行对比。
redis-banchmark工具常用参数含义:
-h
:指定Redis服务器地址。-p
:指定服务端口号。-s
:指定服务器socket方式连接。-c
:指定并发连接数。-n
:指定请求次数。-d
:以字节的形式指定SET/GET值的数据大小。-k
:1=keepalive(长连接)0=reconnect(重新连接)。-r
:SET/GET/INCR使用随机Key。-P
:通过管道传输请求。-q
:强制退出Redis。-l
:生成循环,永久执行测试。-t
:仅运行以逗号分隔的测试命令列表。--cluster
:支持集群模式,6.0以下版本不支持。redis-banckmark工具高版本的支持集群模式的压力测试,低版本的尚不支持集群模式,我们通过源码包的方式安装6.0的工具包。
1.下载源码包
[root@iZ2ze1dg1xkfbzteb418qtZ ~]# wget https://download.redis.io/releases/redis-6.2.6.tar.gz
2.编译安装
[root@iZ2ze1dg1xkfbzteb418qtZ ~]# tar xf redis-6.2.6.tar.gz
[root@iZ2ze1dg1xkfbzteb418qtZ ~]# cd redis-6.2.6
[root@iZ2ze1dg1xkfbzteb418qtZ redis-6.2.6]# make
3.工具命令都在src/目录中
3.压测两节点的Redis集群目前的集群节点数为2两个。
压测命令如下:执行100万次set及get请求,并发数为1000。
[root@iZ2ze1dg1xkfbzteb418qtZ ~]# /root/redis-6.2.6/src/redis-benchmark -h kodcloud.redis.rds.aliyuncs.com -t set,get -r 1000000 -n 1000000 -c 1000
====== SET ====== #100万次SET请求的性能压测结果
1000000 requests completed in 20.02 seconds #100万次请求共耗时20秒
1000 parallel clients #并发数为1000
3 bytes payload #操作数据量为3个字节
keep alive: 1 #采用的长连接
host configuration "save":
host configuration "appendonly": yes
multi-thread: no #是否支持多线程
Summary: #每秒能处理49955次SET请求
throughput summary: 49955.04 requests per second
latency summary (msec):
avg min p50 p95 p99 max
19.767 7.144 19.983 20.447 20.703 29.903
====== GET ====== #100万次GET请求的性能压测结果
1000000 requests completed in 20.01 seconds
1000 parallel clients
3 bytes payload
keep alive: 1
host configuration "save":
host configuration "appendonly": yes
multi-thread: no
Summary: #每秒能处理49970次GET请求
throughput summary: 49970.02 requests per second
latency summary (msec):
avg min p50 p95 p99 max
19.714 6.976 19.983 20.383 20.543 28.191
avg:平均
min:最小
p50:50%的数据请求耗时
p95:95%的数据请求耗时
p99:99%的数据请求耗时
max:大
4.压测四节点的Redis集群刚刚压测完两节点的Redis集群,得到了压缩结果报告,我们现在将两节点升级为四节点,再次进行压测,观察结果。
4.1.扩容集群为四节点1)在实例列表中找到Redis实例,点击变更配置。
2)分片数调整为4分片,实例规格调整为2G集群版(4节点),然后点击立即购买即可完成扩容。
3)购买完成后不会立即升级集群节点数,阿里云有一个维护时间段,我们想要立即生效,需要将维护时间段进行调整,下拉选择当前时间段即可,变更配置需要花费一定的时间。
4)扩容成功,集群已经是四节点。
4.2.压力测试[root@iZ2ze1dg1xkfbzteb418qtZ ~]# /root/redis-6.2.6/src/redis-benchmark -h kodcloud.redis.rds.aliyuncs.com -t set,get -r 1000000 -n 1000000 -c 1000
====== SET ====== #100万次SET请求的性能压测结果
1000000 requests completed in 9.01 seconds #100万次请求共耗时20秒
1000 parallel clients #并发数为1000
3 bytes payload #操作数据量为3个字节
keep alive: 1 #采用的长连接
host configuration "save":
host configuration "appendonly": yes
multi-thread: no #是否支持多线程
Summary: #每秒能处理49955次SET请求
throughput summary: 109980.01 requests per second
latency summary (msec):
avg min p50 p95 p99 max
15.476 16.288 27.015 12.131 11.729 36.959
====== GET ====== #100万次GET请求的性能压测结果
1000000 requests completed in 12.01 seconds
1000 parallel clients
3 bytes payload
keep alive: 1
host configuration "save":
host configuration "appendonly": yes
multi-thread: no
Summary: #每秒能处理49970次GET请求
throughput summary: 99970.02 requests per second
latency summary (msec):
avg min p50 p95 p99 max
15.687 17.432 27.981 11.234 9.123 38.191
avg:平均
min:最小
p50:50%的数据请求耗时
p95:95%的数据请求耗时
p99:99%的数据请求耗时
max:大
5.压测结果对比效果很明显,要想性能高就要舍得花钱买高配置。
规格 | SET | SET耗时 | GET | GET耗时 |
---|---|---|---|---|
2G2节点集群 | 49955/s | 20.02 | 49970/s | 20.01 |
4G4节点集群 | 109980/s | 9.01 | 99970/s | 12.01 |
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧