第 13 章 · 性能优化、监控与排障

三个交互演示:① INFO 监控大盘 · ② 慢查询排查实验室 · ③ 13 条优化 self-check

模拟一个 Redis 实例的实时 INFO 监控

9 大 section 的关键指标实时跳动,QPS 折线、命中率仪表盘、内存使用进度条都是动态生成。 试试点 「模拟内存暴涨」「模拟 fork 慢」 看看告警是怎么触发的。

采样间隔:1s
✓ 当前所有指标正常

1. server running

redis_version 7.2.4
uptime_in_days 12
tcp_port 6379
os Linux 5.4

2. clients 健康

connected_clients 128
blocked_clients 2
rejected_connections 0
maxclients 10000

3. memory 健康

used_memory 2.1 GB
used_memory_rss 2.4 GB
maxmemory 8.0 GB
mem_fragmentation_ratio 1.14
内存使用率
26%

4. persistence 健康

aof_enabled 1
latest_fork_usec 42000us
aof_pending_bio_fsync 0
rdb_changes 3421

5. stats(QPS)健康

ops_per_sec 38000
input_kbps 820
output_kbps 2100
最近 30 秒 QPS 折线

6. 命中率 健康

keyspace_hits 1.2 亿
keyspace_misses 120 万
99.0%

7. replication 健康

role master
connected_slaves 2
master_repl_offset 328179231
repl_backlog_size 1mb

8. eviction 健康

expired_keys 42180
evicted_keys 0
maxmemory_policy allkeys-lru

9. cpu 健康

used_cpu_user 12.4
used_cpu_sys 5.1
主线程 CPU 占用
32%
看懂这张大盘:① 碎片率 1.0~1.5 正常,<1.0 触发 SWAP,>1.5 严重碎片; ② fork > 500ms 报警;③ 命中率 < 90% 说明缓存策略需要优化;④ rejected_connections > 0 说明 maxclients 不够。

慢查询排查实验室

左边一组真实命令按钮,点击后右侧显示模拟的执行耗时、SLOWLOG 记录和优化建议。 每条命令耗时是基于真实 Redis 测量值估算的:SET ~0.1ms、HGETALL big ~50ms、KEYS * ~200ms+。

🎯 试试这些命令


最近一次命令耗时:(点左侧命令开始)
— ms
📋 SLOWLOG GET(阈值 = 10ms)
id时间命令耗时客户端
(SLOWLOG 为空,点左侧按钮触发)
💡 优化建议: 还没运行任何命令,先点左侧试试看~
🧨 主线程被阻塞 = 全员排队: Redis 单线程处理命令,任何一条慢命令都会让所有其他客户端等待。 生产环境必须 rename-command KEYS "" 禁用 KEYS / FLUSHALL / DEBUG。

13 条优化 self-check:勾选你的实际配置

对每一条勾选「我已经做到」,右侧实时打分并给出最该优化的 Top 3。

📊 实时评分

0
/ 100
点左侧勾选开始

🎯 最该优化的 Top 3

先勾选几项再看建议~
评分原理:每项有不同的权重(impact 1~5), 高 impact 的没做到会被列入 Top 3,建议优先解决。当前总权重满分 100。