[标题: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
1
fixend 2020-05-27 10:18:38 +08:00
因为这个只考虑了测负载的情况,不考虑返回结果。
|
3
fixend 2020-05-27 10:31:13 +08:00
@going socket 是连上了,socket 自己又没办法限制这个,但没验证成功啊,不会执行命令的,发送命令只会返回验证错误。
|
4
going OP @fixend 我整明白了
之前我有两点疑问: 1.redis-benchmark 不鉴权为什么可以连接上 Redis,并有测试结果 2.redis-benchmark 不鉴权为什么可以把 CPU 打的很高 鉴权失败的压测过程其实是正常发送了请求包,但是收到了鉴权失败的回包。CPU 高是因为 Redis 收到请求就会处理,但成不成功在于鉴权,原理类似 ping 攻击。所以上述鉴权失败的压测其实没有意义 同样的压测参数,如果单纯压测 SET 命令,会发现数据写入是失败的,但是 CPU 也有负载。 同样的压测参数,如果鉴权成功,会发现 CPU 消耗会更高,因为除了鉴权,还是会做数据写入的。 |