dynamic-hz 做什么
dynamic-hz 默认开启,让 Redis 根据连接数与负载动态调整后台任务频率:负载高时提高频率,空闲时降低,在响应及时性与 CPU 开销之间自动找平衡。关闭后频率固定按 hz 配置执行。它影响的是 serverCron 这类后台工作——过期键清理、客户端超时检测与统计刷新的节奏,不改变命令执行路径。
基本信息
| 默认值 | yes(开启) |
|---|---|
| 行为 | 随连接数与负载自适应调整频率 |
| 关闭效果 | 固定按 hz 配置值执行 |
| 影响范围 | serverCron 类后台任务,不涉及命令执行路径 |
| 观测方式 | INFO cpu 与延迟趋势,短窗口内难以察觉差异 |
典型使用场景
- 保持默认:多数场景让系统自行平衡,运维无需干预
- 延迟敏感实例:理解空闲期频率下降对过期清理及时性的影响
- 成本敏感场景:空闲时段降低后台活动,减少不必要的 CPU 唤醒
- 波动解读:自适应调整让曲线变化更平滑,别当作异常信号
- 排查对照:确认关闭自适应后现象是否发生变化
查看与对照
查看与对照
redis-cli CONFIG GET dynamic-hz # 当前是否开启
redis-cli CONFIG GET hz # 基础频率配置
redis-cli INFO cpu # 各类任务的 CPU 时间占比
redis-cli INFO stats | grep instantaneous_ops_per_sec # 负载对照
redis-cli --latency-history -i 15 # 长时间看延迟趋势,而非瞬时值开关对照
| 配置 | 负载高时 | 负载低时 |
|---|---|---|
| 开启自适应 | 提高频率,响应更及时 | 降低频率,省下 CPU |
| 关闭自适应 | 按 hz 固定频率执行 | 同样固定,空闲开销不降 |
| hz 调高且关闭自适应 | 响应最及时 | 空闲期仍高频,开销固定 |
| hz 默认且开启自适应 | 自动适配 | 自动适配 |
自适应机制下延迟曲线的变化窗口更平滑,观察趋势比盯瞬时值更有意义;比较配置影响时至少覆盖一个完整业务周期。
把自适应带来的频率波动当成异常去排查,会消耗大量精力却找不到问题;先确认波动与负载变化的时间关系。