redis-benchmark 密码错了也可以压测嘛?

2020-05-27 10:12:24 +08:00
 going

[标题:redis-benchmark 密码错了也可以压测嘛?]

背景:redis-benchmark 用这个工具对 Redis 来一波性能测试,Redis 是带密码认证的。

问题:为什么 redis-benchmark 不指定密码、或者随便指定一个错误的密码都可以连上 Redis 并进行压力测试呢?而且确实把负载打的很高了,,压测了所有的命令,结果类似:

PING_INLINE: 37037.04 requests per second PING_BULK: 41666.67 requests per second SET: 40000.00 requests per second GET: 45454.55 requests per second INCR: 43478.26 requests per second LPUSH: 45454.55 requests per second RPUSH: 37037.04 requests per second LPOP: 37037.04 requests per second RPOP: 40000.00 requests per second SADD: 40000.00 requests per second HSET: 37037.04 requests per second SPOP: 34482.76 requests per second LPUSH (needed to benchmark LRANGE): 37037.04 requests per second LRANGE_100 (first 100 elements): 37037.04 requests per second LRANGE_300 (first 300 elements): 41666.67 requests per second LRANGE_500 (first 450 elements): 41666.67 requests per second LRANGE_600 (first 600 elements): 38461.54 requests per second MSET (10 keys): 41666.67 requests per second

1603 次点击
所在节点    问与答
4 条回复
fixend
2020-05-27 10:18:38 +08:00
因为这个只考虑了测负载的情况,不考虑返回结果。
going
2020-05-27 10:19:48 +08:00
@fixend 所以还是不需要密码就可以连上,或者随便一个错误的密码都可以连上,不需要认证的嘛?
fixend
2020-05-27 10:31:13 +08:00
@going socket 是连上了,socket 自己又没办法限制这个,但没验证成功啊,不会执行命令的,发送命令只会返回验证错误。
going
2020-05-27 11:09:06 +08:00
@fixend 我整明白了
之前我有两点疑问:
1.redis-benchmark 不鉴权为什么可以连接上 Redis,并有测试结果
2.redis-benchmark 不鉴权为什么可以把 CPU 打的很高

鉴权失败的压测过程其实是正常发送了请求包,但是收到了鉴权失败的回包。CPU 高是因为 Redis 收到请求就会处理,但成不成功在于鉴权,原理类似 ping 攻击。所以上述鉴权失败的压测其实没有意义
同样的压测参数,如果单纯压测 SET 命令,会发现数据写入是失败的,但是 CPU 也有负载。
同样的压测参数,如果鉴权成功,会发现 CPU 消耗会更高,因为除了鉴权,还是会做数据写入的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/675864

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX