阿里云Redis性能压力测试(二十)

news/2024/10/17 9:18:58/

文章目录

    • 1.云Redis性能压力测试
    • 2.安装redis-banchmark压测工具
    • 3.压测两节点的Redis集群
    • 4.压测四节点的Redis集群
      • 4.1.扩容集群为四节点
      • 4.2.压力测试
    • 5.压测结果对比

1.云Redis性能压力测试

我们当前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以下版本不支持。

2.安装redis-banchmark压测工具

redis-banckmark工具高版本的支持集群模式的压力测试,低版本的尚不支持集群模式,我们通过源码包的方式安装6.0的工具包。

1.下载源码包
[root@iZ2ze1dg1xkfbzteb418qtZ ~]# wget https://download.redis.io/releases/redis-6.2.6.tar.gz2.编译安装
[root@iZ2ze1dg1xkfbzteb418qtZ ~]# tar xf redis-6.2.6.tar.gz 
[root@iZ2ze1dg1xkfbzteb418qtZ ~]# cd redis-6.2.6
[root@iZ2ze1dg1xkfbzteb418qtZ redis-6.2.6]# make3.工具命令都在src/目录中

3.压测两节点的Redis集群

目前的集群节点数为2两个。

image-20220131152834744

压测命令如下:执行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		#并发数为10003 bytes payload		#操作数据量为3个字节keep alive: 1			#采用的长连接host configuration "save": host configuration "appendonly": yesmulti-thread: no			#是否支持多线程Summary:						#每秒能处理49955次SET请求throughput summary: 49955.04 requests per secondlatency summary (msec):avg       min       p50       p95       p99       max19.767     7.144    19.983    20.447    20.703    29.903====== GET ======                                         #100万次GET请求的性能压测结果     1000000 requests completed in 20.01 seconds1000 parallel clients3 bytes payloadkeep alive: 1host configuration "save": host configuration "appendonly": yesmulti-thread: noSummary:						#每秒能处理49970次GET请求throughput summary: 49970.02 requests per secondlatency summary (msec):avg       min       p50       p95       p99       max19.714     6.976    19.983    20.383    20.543    28.191avg:平均
min:最小
p50:50%的数据请求耗时
p95:95%的数据请求耗时
p99:99%的数据请求耗时
max:最大

4.压测四节点的Redis集群

刚刚压测完两节点的Redis集群,得到了压缩结果报告,我们现在将两节点升级为四节点,再次进行压测,观察结果。

4.1.扩容集群为四节点

1)在实例列表中找到Redis实例,点击变更配置。

image-20220131160342115

2)分片数调整为4分片,实例规格调整为2G集群版(4节点),然后点击立即购买即可完成扩容。

image-20220131162000327

3)购买完成后不会立即升级集群节点数,阿里云有一个维护时间段,我们想要立即生效,需要将维护时间段进行调整,下拉选择当前时间段即可,变更配置需要花费一定的时间。

image-20220131160732785

4)扩容成功,集群已经是四节点。

image-20220131161604464

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		#并发数为10003 bytes payload		#操作数据量为3个字节keep alive: 1			#采用的长连接host configuration "save": host configuration "appendonly": yesmulti-thread: no			#是否支持多线程Summary:						#每秒能处理49955次SET请求throughput summary: 109980.01 requests per secondlatency summary (msec):avg       min       p50       p95       p99       max15.476     16.288    27.015    12.131    11.729    36.959====== GET ======                                         #100万次GET请求的性能压测结果     1000000 requests completed in 12.01 seconds1000 parallel clients3 bytes payloadkeep alive: 1host configuration "save": host configuration "appendonly": yesmulti-thread: noSummary:						#每秒能处理49970次GET请求throughput summary: 99970.02 requests per secondlatency summary (msec):avg       min       p50       p95       p99       max15.687     17.432    27.981    11.234    9.123    38.191avg:平均
min:最小
p50:50%的数据请求耗时
p95:95%的数据请求耗时
p99:99%的数据请求耗时
max:最大

5.压测结果对比

效果很明显,要想性能高就要舍得花钱买高配置。

规格SETSET耗时GETGET耗时
2G2节点集群49955/s20.0249970/s20.01
4G4节点集群109980/s9.0199970/s12.01

http://www.ppmy.cn/news/809.html

相关文章

Numpy入门[3]——Numpy数组及其索引

Numpy入门[3]——Numpy数组及其索引 参考: https://ailearning.apachecn.org/ 使用Jupyter进行练习 先导入numpy: import numpy as np产生数组 从列表产生数组 mylist [0, 1, 2, 3] a np.array(mylist) aarray([0, 1, 2, 3])或者直接将列表传入 a …

springboot简述

文章目录一、SpringBoot简介1、springboot快速入门1、开发步骤1.创建springboot入门项目2.创建controller3.启动服务器4.测试2、对比spring3、springboot工程快速启动4.切换web服务器二、配置文件1.配置文件格式2.properties配置文件3.yaml格式配置文件1.语法规则2.yaml配置文件…

【python与数据分析】实验十三 北京市空气质量

目录 一、实验内容 二、完成情况 三、数据分析 1.问题描述 2.编程思路 3.程序代码 4.程序运行结果 (1)2014年-2019年AQI时间序列折线图 (2)各年AQI折线图、AQI直方图、PM2.5与AQI散点图、空气质量整体情况的饼图 ​&am…

HTML+CSS大作业:众志成城 抗击疫情 抗击疫情网页制作作业 疫情防控网页设计

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

import一个“太极”库,让Python代码提速100倍

众所周知,Python的简单和易读性是靠牺牲性能为代价的—— 尤其是在计算密集的情况下,比如多重for循环。 不过现在,大佬胡渊鸣说了: 只需import 一个叫做“Taichi”的库,就可以把代码速度提升100倍! 不信&…

网格化微型空气质量站是什么?系统参数?工作特点?

产品简介 网格化微型空气质量站是一种集数据采集、存储、传输和管理于一体的无人值守的环境监测系统,能全天候、连续、自动地监测环境,在提供PM10、PM2.5、 SO2、 NO2、CO、O3等参数数据的基础上,可扩展对VOCs、氯气、硫化氢、氨气等多种特征…

Spark中常用的聚合算子说明及使用

一、groupByKey 1、基本释义 groupByKey 顾名思义是“按照 Key 做分组”,但实际上groupByKey算子包含分组和收集两步。具体来说,对于元素类型为(Key,Value)键值对的 Paired RDD,groupByKey 的功能就是对 …

浅谈正则表达式——C++正则替换引起的性能下降

目录问题引入正则替换测试常规方法测试模拟外部多次调用正则性能差的原因写在最后问题引入 最近在一次解析大文件(10万行)时,处理空格用到了正则替换,却没想到带来了性能上的问题,特别在此记录给需要的人避坑。假如要用C处理一个字符串首尾的…