命令级延迟百分位
INFO latencystats 给出每个命令的延迟百分位,比平均耗时更能反映尾部体验:某个命令的平均值可能很小,但 p99 已经很高,而用户感知到的正是这部分请求。它依赖延迟跟踪(latency-tracking,默认开启),输出的百分位口径由 latency-tracking-info-percentiles 决定,默认是 50、99、99.9。字段名形如 latency_percentiles_usec_ 加命令名,单位是微秒。命令数量多时先按最差百分位排序,再逐条看细节。
基本信息
| 命令 | INFO latencystats |
|---|---|
| 前置条件 | latency-tracking 开启(默认) |
| 百分位来源 | latency-tracking-info-percentiles |
| 默认口径 | 50 99 99.9 |
| 字段形式 | latency_percentiles_usec_<命令名> |
| 单位 | 微秒 |
| 配套数据 | INFO commandstats 的调用次数与平均耗时 |
典型使用场景
- 按 p99 排序找出最拖后腿的几个命令,排定治理顺序
- 验证某次优化是否真正改善了尾部延迟,而不是只改善平均值
- 按命令维度做容量评估,判断哪类请求最先到瓶颈
- 对比两个版本或两套部署的命令级分布差异
- 排查业务侧超时,确认是否由少数命令的长尾造成
- 为延迟告警选阈值时,先用百分位数据建立基线
- 定位大键操作:某类命令的 p99 明显高于同类其他调用
- 为治理排期提供量化依据,用数据说明优化收益
查看与对比
查看与对比
redis-cli INFO latencystats # 命令级百分位(微秒)
redis-cli CONFIG GET latency-tracking # 确认跟踪是否开启
redis-cli CONFIG GET latency-tracking-info-percentiles
redis-cli INFO commandstats # 调用次数与平均耗时
redis-cli SLOWLOG GET 10 # 慢命令样本,交叉验证
redis-cli INFO cpu # 排除单核打满造成的普涨指标分工对照
| 指标 | 看什么 | 局限 |
|---|---|---|
| 平均耗时 | 整体水平 | 长尾被平均掉 |
| p99 | 尾部体验 | 极端情况看不到 |
| p99.9 | 极端情况 | 样本少时跳动大 |
| 调用次数 | 影响面大小 | 不含耗时信息 |
命令很多时先过滤再排序,把注意力放在调用量大且尾部延迟高的命令上。
百分位数据与慢日志相互印证:慢日志给样本明细,百分位给全局分布,两者结论不一致时优先核对时间窗口。
数据是累计口径,做优化前后对比时要么固定采集窗口,要么用 CONFIG RESETSTAT 重置统计,否则新旧数据混在一起。