腾讯云分布式缓存数据库提供完整的监控数据采集体系,覆盖 Proxy 代理节点、Redis 数据节点和实例级三个维度。监控系统以秒级粒度实时采集各节点的性能指标,经过统一的聚合处理后,为您呈现准确、全面的监控视图。本节介绍监控数据从采集到展示的完整处理流程,帮助您更好地理解监控指标的含义和数据特征。
代理节点数据采集
每个腾讯云分布式缓存数据库实例包含至少3个 Proxy 节点(通常为 Redis 节点数量的1.5倍)。Proxy 节点作为客户端与 Redis 节点之间的访问代理层,实时统计以下维度的监控数据:
采集维度 | 采集方式 | 代表指标 |
CPU 资源 | 实时采集 Proxy 进程的 CPU 使用率 | cpu_util |
请求统计 | 统计经过 Proxy 的命令执行次数和类型分布 | proxy_commands、cmd_key_count、cmd_mget、cmd_err、cmd_big_value |
网络流量 | 采集入站和出站的网络流量及带宽使用率 | in_flow、out_flow、in_bandwidth_util、out_bandwidth_util |
流量限流 | 记录触发带宽限流的次数 | in_flow_limit、out_flow_limit |
连接管理 | 统计客户端 TCP 连接数量和使用率 | connections、connections_util、connections_max_util |
执行时延 | 统计 Proxy 到 Redis Server 之间的命令执行时延分布 | latency_avg、latency_max、latency_read、latency_write、latency_other |
说明:
Proxy 节点的时延指标反映的是从 Proxy 接收到客户端命令到收到 Redis Server 响应的耗时,能够准确体现数据库内部的处理效率。
数据节点数据采集
数据节点监控覆盖实例内所有主节点和副本节点。数据节点的指标采集方式根据指标特征分为以下几类:
采集方式 | 说明 | 代表指标 |
实时状态采集 | 直接读取数据节点运行时的状态信息,获取当前时刻的瞬时值 | cpu_util(CPU 使用率)、connections(连接数)、mem_used(内存使用量)、mem_util(内存使用率)、keys(Key 总数)、expires(设置过期时间的 Key 数) |
周期增量计算 | 在每个采集周期内,计算指标值相对于上一周期的变化量,反映采集周期内的增量变化 | expired(过期 Key 数)、evicted(驱逐 Key 数)、cmd_slow(慢查询数)、cmd_hits(读请求命中数)、cmd_miss(读请求未命中数) |
速率计算 | 在增量计算的基础上除以采集时间间隔,得出每秒速率,反映单位时间内的处理能力 | commands(总请求 QPS)、cmd_read(读请求 QPS)、cmd_write(写请求 QPS)、cmd_other(其他请求 QPS) |
组合衍生计算 | 基于多个基础指标的组合运算生成衍生指标,反映更高层次的性能特征 | cmd_hits_ratio(读请求命中率 = 命中数 /(命中数 + 未命中数)) |
说明:
对于周期增量计算和速率计算类指标,监控系统需要连续多个采集周期的数据才能输出稳定的指标值。在实例刚启动或发生故障切换后的短时间内,这些指标可能出现短暂的数据波动,属于正常现象。
实例级数据聚合
实例级监控数据并非独立采集,而是将 Proxy 节点和 Redis 节点的监控数据通过聚合算法汇总而成。不同的监控指标根据其业务含义采用不同的聚合方式:
聚合算法 | 适用场景 | 代表指标 | 计算方式 |
SUM(求和) | 可累加的计数类指标,各节点的值叠加后代表实例总量 | commands(总请求 QPS)、cmd_read(读请求 QPS)、cmd_write(写请求 QPS)、cmd_slow(慢查询数)、cmd_hits(命中数)、cmd_miss(未命中数) | 所有参与聚合的节点指标值求和 |
AVG(平均值) | 需要反映实例整体平均水平的比率类指标 | cpu_util(CPU 使用率) | 所有 Redis 节点(包括主节点和副本节点)的指标值取算术平均 |
MAX(取最大值) | 需要反映实例内瓶颈节点情况的指标 | cpu_max_util(节点最大 CPU 使用率)、mem_max_util(节点最大内存使用率)、connections_max_util(节点最大连接数使用率) | 所有参与聚合的节点中取指标最大值 |
加权平均 | 简单平均无法准确反映全局特征的比率类指标,需要根据各节点的实际数据量进行加权 | cmd_hits_ratio(读请求命中率) | 所有节点的命中总数 /(所有节点的命中总数 + 所有节点的未命中总数),而非各节点命中率的简单平均 |
LAST(取最新值) | 取最近一次采集的值 | 部分状态类指标 | 取最近一个采集周期的值 |
说明:
读请求命中率(
cmd_hits_ratio)采用加权平均算法,相比简单平均能够更准确地反映实例整体的缓存命中情况。例如,当不同节点的访问量差异较大时,简单平均可能受低流量节点的影响而产生偏差,加权平均则以实际的命中和未命中总量为基础计算,数据更准确。当实例无访问请求时,该值为 null。倾斜率指标
倾斜率指标用于评估集群架构实例中各分片之间的负载均衡程度。计算方式为:单个节点的指标值与实例内所有参与聚合节点平均值的比率。当倾斜率大于100%时,表示该节点的负载高于平均水平,存在倾斜。
说明:
当某个倾斜率指标持续大于150%时,建议关注对应分片的负载情况,必要时可通过扩容或优化数据分布来改善负载均衡。
指标 | 指标名称 | 说明 |
总请求倾斜率 | qps_slope_util | 反映各分片之间请求量的均衡程度 |
内存使用率倾斜率 | mem_util_slope_util | 反映各分片之间内存使用的均衡程度 |
监控数据的特殊场景说明
在以下场景中,监控数据可能出现短暂的波动或变化,属于正常现象:
场景 | 影响 | 说明 |
实例初始化 | 部分指标短暂波动 | 增量计算类指标(如 QPS、慢查询数等)需要连续采集周期的数据才能输出稳定值,启动初期可能出现短暂的零值或异常值。 |
主备切换 | 短暂数据断点 | 故障切换过程中,原节点停止上报、新节点开始上报之间可能存在短暂的数据间隔。切换完成后,监控数据自动恢复。 |
扩容或缩容 | 节点 ID 变化 | |
副本只读开启或关闭 | 实例级指标基线变化 | 开启或关闭副本只读功能后,参与实例级聚合计算的节点范围可能发生变化,部分指标的数值基线可能产生相应调整。 |