我们将 Redis 用作队列,平均大约 ~3k rps。但是当我们检查 instantaneous_ops_per_sec 时,这个值始终报告高于预期,大约 20%,在这种情况下,报告每秒约 4k 操作。
为了验证这一点,我对 MONITOR 进行了大约 10 秒的转储,并检查了传入命令的数量。
grep "1489722862." monitor_output | wc -l
其中 1489722862 是时间戳。甚至这个计数也与队列中生成的内容和队列中消耗的内容相匹配。 这是一个主从redis集群设置。 instantaneous_ops_per_sec 是否也考虑了从读取?如果不是,那么此计数明显更高的另一个原因是什么?
最佳答案
instantaneous_ops_per_sec
指标计算为服务器最近采样的平均值。 server.h
中的 STATS_METRIC_SAMPLES
将最近样本的数量硬编码为 16。
关于Redis instantaneous_ops_per_sec 高于实际吞吐量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42850377/