*Redis LATENCY-DOCTOR 命令
LATENCY-DOCTOR 是 Redis 延迟监控的诊断工具,输出延迟问题的诊断报告和建议。
*语法
LATENCY DOCTOR
*参数说明
无参数。
*返回值
- String:延迟诊断报告
*时间复杂度
O(1)
*
*示例
> LATENCY DOCTOR
"Dave, I have observed some latency spikes in the system:\n\n1. slowlog: 5 spikes (average 15ms, worst 100ms)\n ...\n"
*常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| ERR unknown command 'latency' | 延迟监控未开启或 Redis 版本不支持 | 确认 Redis 版本 ≥ 2.8.13,并设置 latency-monitor-threshold |
| (empty) 或空报告 | 统计样本不足,延迟事件未触发 | 等待运行一段时间后再执行,或降低阈值以捕获更多事件 |
| 报告内容不准确 | 阈值设置过高导致漏报 | 适当降低 latency-monitor-threshold 的值 |
*最佳实践
- 延迟问题排查时首先运行
- 结合 LATENCY HISTORY 和 LATENCY GRAPH 深入分析
- 生产环境建议开启延迟监控
- 将延迟阈值纳入监控告警体系,当 LATENCY DOCTOR 报告异常时自动触发告警
- 定期运行 LATENCY DOCTOR 并将报告保存到日志系统,用于长期趋势分析
*FAQ
Q1: 需要开启延迟监控吗?
A: 建议开启,通过 CONFIG SET latency-monitor-threshold 100 设置阈值。
Q2: 报告可信吗? A: 基于内部统计,提供初步诊断方向。
Q3: 和 SLOWLOG 有什么区别? A: LATENCY DOCTOR 关注系统级延迟;SLOWLOG 记录慢命令。
Q4: 延迟阈值设置多少合适? A: 生产环境建议设置为 100ms 或 50ms,具体取决于业务对延迟的敏感度。延迟要求高的系统可设为 10ms。
Q5: 延迟诊断报告无法生成怎么办?
A: 检查延迟监控是否开启,确认 latency-monitor-threshold 配置项已设置,并且实例运行时间足够长以积累统计数据。