首页/数据/Redis 进阶速查/性能告警阈值设计
性能与排障129 条

性能告警阈值设计

性能告警建议双轨:硬阈值(延迟超过业务容忍、连接拒绝)与趋势阈值(延迟百分位持续抬升、慢命令增速),后者用于提前介入。

Redis 进阶速查数据更新于 2026-10-13

两轨阈值设计

性能告警建议分两轨:硬阈值即时触发,比如延迟超过业务容忍、出现连接被拒;趋势阈值用于提前介入,比如延迟百分位持续抬升、慢命令增速、错误率抬头。阈值必须用压测与历史数据校准,拍脑袋定的数字只会制造噪声,最后被整体忽略。

基本信息

硬阈值延迟超限、连接被拒,立即告警
趋势阈值百分位抬升、增速异常,提前介入
数据来源INFO latencystats / stats / clients、SLOWLOG、LATENCY
校准方式压测基线加历史分位

典型使用场景

  • 某命令 P99 连续多个采集周期抬升,触发趋势预警
  • rejected_connections 上升,说明连接数已经打到上限
  • evicted_keys 抬头,提示内存水位与淘汰策略需要复核
  • 慢命令累计条数增速异常,定位到具体命令
  • 阻塞客户端数长时间居高,检查消费者是否停摆
  • 主从链路状态变化,复制中断影响读扩展与故障切换

分级的落地做法

一级可用性受损,立即呼叫值班
二级性能退化,限定时间内处置
三级趋势异常,进入例行巡检队列
去噪同一根因合并为一条通知

常用采集命令

常用采集命令
redis-cli INFO latencystats | head -20    # 各命令的延迟百分位分布
redis-cli INFO stats | grep -E 'rejected_connections|evicted_keys|expired_keys'
redis-cli INFO clients | grep -E 'connected_clients|blocked_clients'
redis-cli SLOWLOG LEN                      # 慢日志条数,重点看增速
redis-cli INFO replication | grep -E 'master_link_status|master_last_io_seconds_ago'
redis-cli LATENCY LATEST                   # 需先设 latency-monitor-threshold

指标与告警取向

指标含义告警取向
latencystats 百分位各命令延迟分布超过业务容忍即报硬阈值
rejected_connections因超过 maxclients 被拒的连接数非 0 即报,直接面向可用性
evicted_keys因内存策略被淘汰的键数增速抬头预警容量不足
expired_keys累计过期删除数突增常伴过期风暴与延迟尖峰
blocked_clients阻塞在阻塞类命令上的客户端数长期居高要查消费端
master_link_status主从复制链路状态down 表示复制中断
SLOWLOG LEN慢日志累计条数看增速,不看绝对值
LATENCY 子系统需要先配置 latency-monitor-threshold(单位毫秒),否则 LATENCY LATEST 一直是空的;阈值设太低,本身就会变成噪声来源。
同一指标在不同实例规格下含义不同。监控里要按实例打标并关联角色(主库或从库),否则从库指标混进主库告警会误导判读。
告警落地的最后一步是复核:记录每次触发时的真实原因,定期回看误报与漏报,用真实案例反推阈值,比一次性拍数字可靠得多。

易错点

  • 阈值拍脑袋定:过松漏报,过紧造成告警疲劳,最终被整体忽略
  • 只设硬阈值不设趋势:等到硬阈值触发时,业务已经受损
  • 不区分实例与角色:从库指标混入主库告警,判读错位
  • 告警不分级:紧急与提示同等对待,真正的故障被淹没

数据来源与参考

  • Redis 官方文档:告警实践
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌