slowlog-log-slower-than 是什么
slowlog-log-slower-than 以微秒为单位设定慢日志的记录阈值,默认 10000,即 10 毫秒。设为 0 表示记录全部命令,适合临时诊断窗口;设为负值则完全关闭记录。阈值衡量的是服务端执行时间,不含网络往返与客户端等待。
基本信息
| 配置项 | slowlog-log-slower-than |
|---|---|
| 默认值 | 10000 微秒(10 毫秒) |
| 设为 0 | 记录所有命令,仅适合短时诊断 |
| 设为负值 | 关闭慢日志记录 |
| 配套项 | slowlog-max-len 控制保留条数,默认 128 |
| 生效方式 | CONFIG SET 动态生效,注意同步写回配置文件 |
典型使用场景
- 常态化观测:把阈值设在业务可感知的水平,长期留有线索
- 现场抓取:怀疑偶发慢请求时临时降到几百微秒,短窗口抓完就恢复
- 压测校准:压测中调低阈值,观察哪些命令随并发升高而变慢
- 上线对比:发布前后用同一阈值统计,判断是否引入了新的慢路径
- 成本控制:阈值过低会让日志膨胀,需要在信息量与开销间定线
调整与验证
调整与验证
redis-cli CONFIG GET slowlog-log-slower-than # 查看当前阈值
redis-cli CONFIG SET slowlog-log-slower-than 5000 # 收紧到 5 毫秒,抓更细的现场
redis-cli SLOWLOG RESET # 清空旧记录便于观察
redis-cli SLOWLOG LEN # 观察条目增长速度
redis-cli SLOWLOG GET 5 # 抽看几条判断是否值得继续抓
redis-cli CONFIG SET slowlog-log-slower-than 10000 # 诊断结束恢复默认阈值取值对照
| 取值 | 行为 | 适用判断 |
|---|---|---|
| 负值 | 不记录任何慢命令 | 极少使用,等于放弃这条线索 |
| 0 | 记录全部命令 | 短窗口诊断,必须尽快恢复 |
| 1000 微秒 | 抓 1 毫秒以上的命令 | 现场排查,日志量偏大 |
| 10000 微秒 | 默认,抓 10 毫秒以上 | 多数生产环境的常规设置 |
| 很高或负值 | 几乎看不到记录 | 容易误以为实例没有慢命令 |
慢日志的判定在服务端执行环节完成,所以同一命令在客户端看到的耗时可能远大于记录值,差值主要来自网络与排队。
阈值长期设为 0 会记录海量命令,日志内存与写入开销都会上升;诊断窗口结束要立即恢复,并把这次调整记进变更记录。