【提升自己系列】,Redis性能测试还能这样做

01、服务器环境

参数

linux指令

系统

cat /etc/redhat-release

CentOS Linux release 7.8.2003 (Core)

内存

free -h

total:3.7G available:3.0G

CPU数量

cat /proc/cpuinfo

cpu cores       :2

HZ

cat /proc/cpuinfo |grep MHz|uniq

cpu MHz         : 2100.000

Redis之redis-benchmark

redis 提供了 redis-benchmark 工具便于我们做性能测试,可以使用 redis-benchmark- h 查看参数。

命令

描述

默认值

-h <hostname>

指定服务器主机名

127.0.0.1

-p <port>

指定服务器端口

6379

-s <socket>

指定服务器 socket

-a <password>

Redis 认证密码

-c <clients>

指定并发连接数

50

-n <requests>

指定请求数

10000

-d <size>

以字节(Byte)的形式指定 SET/GET 值的数据大小

3

--dbnum <db>

选择 Redis 数据库编号

0

--threads <num>

启用多线程模式

redis6以上才有

-k <boolean>

是否保持连接 1=keep alive 0=reconnect

1

-r <keyspacelen>

SET/GET/INCR 使用随机 KEY ,SADD 使用随机值

-P <numreq>

默认情况下,Redis 客户端一次请求只发起一个命令。通过 -P 参数,可以设置使用 pipelining功能,一次发起指定个请求,从而提升 QPS

1

-e

如果 Redis Server 返回错误,是否将错误打印出来。默认情况下不打印,通过该参数开启

-q

强制退出 redis。仅显示 query/sec 值

--csv

以 CSV 格式输出

-l (L)

生成循环,永久执行测试

-t <tests>

指定需要测试的 Redis 命令,多个命令通过逗号分隔。想测试 SET/GET 命令,则可以 -t SET,GET 来指定

-I (i)

Idle 模式。仅打开 N 个 idle 连接并等待。

01、Docker Redis测试

单并发测试

测试命令:

./redis-benchmark -c 1 -n 20000 -d 30720 -t set,get

测试结果每秒是 8000+的QPS

多并发测试

====== SET ======

  20000 requests completed in 1.06 seconds
  10 parallel clients
  30720 bytes payload
  keep alive: 1
  host configuration "save": 900 1 300 10 60 10000
  host configuration "appendonly": no
  multi-thread: no
18903.59 requests per second
====== GET ======
 20000 requests completed in 1.30 seconds
 10 parallel clients
 30720 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no
 multi-thread: no
15360.98 requests per second

测试 -P 命令

====== SET ======
 20007 requests completed in 0.47 seconds
 50 parallel clients
 30720 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no
 multi-thread: no
42933.48 requests per second
 
====== GET ======
 20002 requests completed in 0.44 seconds
 50 parallel clients
 30720 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no
 multi-thread: no
45253.39 requests per second

02、redis6 安装版测试

单并发测试

====== SET ======

 
 200000 requests completed in 20.20 seconds
 1 parallel clients  3 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no
 multi-thread: no
9900.01 requests per second
 
====== GET ======
 200000 requests completed in 20.01 seconds
 1 parallel clients
 3 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no
 multi-thread: no
9995.50 requests per second

多并发测试

====== SET ======
 200000 requests completed in 3.00 seconds
 10 parallel clients
 3 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no
 multi-thread: no
66622.25 requests per second
 
====== GET ======
 200000 requests completed in 3.02 seconds
 10 parallel clients
 3 bytes payload
 keep alive:1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no
 multi-thread: no
66137.57 requests per second

03、-P 测试

单并发测试

====== SET ======

 200000 requests completed in 2.20 seconds
 1 parallel clients
 3 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no  
multi-thread: no
90991.81 requests per second
 
====== GET ======
 200000 requests completed in 2.15 seconds
 1 parallel clients  3 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no  
multi-thread: no
92980.01 requests per second

多并发测试

====== SET ======

 200010 requests completed in 0.42 seconds
 10 parallel clients  3 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no
 multi-thread: no
480793.25 requests per second
 
====== GET ======
 200000 requests completed in 0.34 seconds
 10 parallel clients
 3 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no
 multi-thread: no
586510.25 requests per second

02、换服务器测试

参数

linux指令

系统

cat /etc/redhat-release

CentOS Linux release 7.7.1908 (Core)

内存

free -h

total:3.6G ,available:782M

CPU数量

cat /proc/cpuinfo

cpu cores       : 1

HZ

cat /proc/cpuinfo |grep MHz|uniq

cpu MHz         : 2500.002

01、Docker Redis

单并发测试

====== SET ======

 20000 requests completed in 1.22 seconds
 1 parallel clients
 30720 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no  
multi-thread: no
16420.36 requests per second

====== GET ======

 20000 requests completed in 1.42 seconds
 1 parallel clients  30720 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no
 multi-thread: no
14094.43 requests per second

多并发测试

====== SET ======
 20000 requests completed in 0.66 seconds
 10 parallel clients
 30720 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no
 multi-thread: no
30395.14 requests per second
 
====== GET ======
 20000 requests completed in 0.81 seconds
 10 parallel clients
 30720 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no  
multi-thread: no
24721.88 requests per second

02、-P 测试

单并发测试

====== SET ======
 20000 requests completed in 0.59 seconds
 1 parallel clients
 30720 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no
 multi-thread: no
33726.81 requests per second
 
====== GET ======
 20000 requests completed in 0.50 seconds
 1 parallel clients
 30720 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no  
multi-thread: no
39682.54 requests per second

多并发测试

====== SET ======

 20008 requests completed in 0.31 seconds
 10 parallel clients
 30720 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no
 multi-thread: no
64750.81 requests per second
 
====== GET ======
 20017 requests completed in 0.27 seconds
 10 parallel clients
 30720 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no
 multi-thread: no
73591.91 requests per second

03、Redis 安装版

单并发测试

====== SET ======

 200000 requests completed in 7.21 seconds
 1 parallel clients  3 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no
 multi-thread: no
27735.40 requests per second
 
====== GET ======
 200000 requests completed in 7.06 seconds
 1 parallel clients  3 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no
 multi-thread: no
28312.57 requests per second

多并发测试

====== SET =====

 200000 requests completed in 2.31 seconds
 10 parallel clients
 3 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no
 multi-thread: no
86730.27 requests per second
 
===== GET ======
 200000 requests completed in 2.29 seconds
 10 parallel clients  3 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no
 multi-thread: no
87221.98 requests per second

04、-P 测试

单并发

====== SET ======
 200000 requests completed in 0.89 seconds
 1 parallel clients
 3 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no
 multi-thread: no
223964.16 requests per second
 
====== GET ======
 200000 requests completed in 0.81 seconds
 1 parallel clients  3 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no
 multi-thread: no
247524.75 requests per second

多并发

====== SET ======

 
  200000 requests completed in 0.29 seconds
  10 parallel clients
  3 bytes payload
  keep alive: 1
  host configuration "save": 900 1 300 10 60 10000
  host configuration "appendonly": no
  multi-thread: no
687285.19 requests per second
 
====== GET ======
 200000 requests completed in 0.27 seconds
 10 parallel clients  3 bytes payload
 keep alive: 1
 host configuration "save": 900 1 300 10 60 10000
 host configuration "appendonly": no
 multi-thread: no
751879.69 requests per second

明显可以看出 换了一台的服务器,CPU没有上一台多,可用内存剩余少,单单只是HZ不一样,但结果相差甚大。
其他运行测试,当一台32G的内存服务器,Redis跑到 7G 的时候 QPS 从 20W+ 一路下跌,跑到31G的时候QPS大约为 3W+。(这个大家可以自测 把 -d 值给大就行)

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

 

学习上

作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:开心螺蛳粉】自提!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述

在这里插入图片描述

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。

  • 43
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值