首页/数据/数据库速查/CPU 飙高排查清单
本包目录(495 条)
MySQL 基础与连接36 条SQL 语法52 条用户与权限21 条备份与恢复56 条主从复制与高可用53 条性能与调优57 条Redis 命令96 条
Redis 运维与场景124 条

CPU 飙高排查清单

CPU 高的四大来源:命令开销(热 key/大命令)、过期与淘汰集中、后台任务(fork/rewrite)、网络与加密(TLS/复制流);用 commandstats 与 persistence 段交叉定位。

数据库速查数据更新于 2026-10-12

定位命令

定位命令
redis-cli INFO cpu
redis-cli INFO commandstats | sort -t= -k2 -rn | head -20   # 命令调用 top(累计)
redis-cli SLOWLOG GET 20
redis-cli INFO stats | grep -E "expired_keys|evicted_keys|instantaneous_ops_per_sec"
redis-cli INFO persistence | grep -E "rdb_bgsave_in_progress|aof_rewrite_in_progress|latest_fork_usec"
redis-cli --hotkeys     # 需 LFU 策略(低峰执行)
commandstats看哪个命令族在烧 CPU(usec_per_call × calls)
expired/evicted集中过期或被淘汰暴涨:检查 TTL 设计
forklatest_fork_usec 高:内存大/写密集导致复制慢
网络TLS 加解密与大数据量输出也吃 CPU
commandstats 是累计值:先 CONFIG RESETSTAT(避开高峰)再采样一段时间的增量更准确。

易错点

  • 高峰期跑 --hotkeys/--bigkeys:自己再推高一截 CPU
  • 把 CPU 高都说成「流量大」:过期键集中触发也很常见(TTL 同点设计)

数据来源与参考

  • Redis 官方文档: INFO commandstats
  • Redis 官方文档: 延迟排查

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌