内存监控该采哪些指标
内存监控的采集项要能覆盖四类问题:用了多少、涨得快不快、回收了多少、系统层压力如何。建议至少采集当前用量与上限、常驻内存、淘汰与过期计数、碎片率、连接数以及键数量。每项指标都要按实例与角色分别打标,主从与集群节点的水位不能混算,否则告警会长期处于误报状态。
基本信息
| 用量类 | 当前用量与配置上限 |
|---|---|
| 压力类 | 常驻内存与碎片率 |
| 回收类 | 淘汰计数与过期计数 |
| 规模类 | 连接数与键数量 |
| 打标要求 | 按实例、角色、分片分别打标 |
典型使用场景
- 为实例建立内存告警,明确用哪个指标作为主判据
- 容量评审时用趋势数据推算扩容时间点
- 排查告警后无法定位方向的问题,补齐构成类指标
- 对比主库与副本的水位差异,识别同步放大问题
- 集群环境下为每个分片单独设阈值,避免平均掩盖异常
采集示例
采集示例
redis-cli INFO memory | grep -E 'used_memory:|used_memory_rss|maxmemory|mem_fragmentation_ratio'
redis-cli INFO stats | grep -E 'evicted_keys|expired_keys'
redis-cli INFO clients | grep connected_clients
redis-cli INFO keyspace # 各库键数量
redis-cli INFO replication | grep -E 'connected_slaves|role'采集项与告警方向
| 指标 | 关注点 | 告警方向 |
|---|---|---|
| 用量与上限比值 | 是否接近淘汰或拒写边界 | 超过阈值持续一段时间 |
| 常驻内存 | 碎片与系统层压力 | 明显高于报告值且持续 |
| 淘汰计数 | 回收活动强度是否异常 | 短时间内增速明显抬升 |
| 过期计数 | 过期键集中清理的规模 | 批量过期引发的延迟风险 |
| 连接数 | 连接规模与缓冲开销 | 突增或长期缓慢上涨 |
| 键数量 | 增长归因的基础数据 | 与用量增长不同步时需排查 |
指标要按实例与角色分别打标,把主库、副本与不同分片混在一条规则里,会导致告警频繁误报并使阈值失去意义。
只采集总量不采集构成,告警触发之后仍然不知道从哪查起,多花几分钟补齐构成类指标,排障时能省下大量时间。