文档首页> 分布式缓存服务 DCS> 故障排除> 排查Redis实例带宽使用率高的问题
更新时间:2023-11-27 GMT+08:00

排查Redis实例带宽使用率高的问题

概述

Redis实例作为更靠近应用服务的数据层,通常会执行较多的数据存取并消耗网络带宽。不同的实例规格对应的最大带宽有所不同,当超过该规格的最大带宽时,会产生流控,流控会导致连接被丢弃,从业务角度可能会造成业务的延迟增大,客户端连接异常等问题。本节讲述如何排查Redis实例带宽使用率高的问题。

操作步骤

  1. 查询带宽使用率。

    查询实例在指定时段的带宽使用率。具体操作请参见查看监控数据

    通常来说,“网络瞬时输入流量”和“网络瞬时输出流量”快速上升,并持续大于实例最大带宽的80%时,需引起注意,可能流量不足。

    需关注的监控指标为带宽使用率如下图。带宽使用率的计算公式:带宽使用率=(网络瞬时输入流量+网络瞬时输出流量)/(2*最大带宽限制) * 100%。

    图1 带宽使用率示例

    其中,带宽使用率超过100%,不一定导致限流,有没有被流控需要看流控次数指标。

    带宽使用率没有超过100%,也有可能有限流,因为带宽使用率是上报周期实时值,一个上报周期检查一次。流控检查是秒级的,有可能存在上报周期间隔期间,流量有秒级冲高,然后回落,待上报带宽使用率指标时已恢复正常。

  2. 优化带宽使用率。

    1. 当业务的访问量与预期带宽消耗不匹配,例如带宽使用率的增长趋势和QPS的增长趋势明显不一致(可结合网络瞬时输入流量和网络瞬时输出流量,分析业务是读业务和还是写业务导致的流量上涨)。对于单个节点带宽使用率上涨,您可以通过缓存分析功能,发现实例中存在的大Key,具体操作请参见大key分析。对大Key(通常大于10 KB)进行优化,例如将大Key拆分、减少对大Key的访问、删除不必要的大Key等。
    2. 经过上述步骤优化后流量使用率依旧较高,可评估升级至更大内存的规格,以承载更大的网络流量。具体操作请参见变更实例规格
      • 在正式升级实例的规格前,您可以先购买一个按需付费的实例,测试要升级到的目标规格是否能够满足业务的负载需求,测试完成后可将其释放。释放实例请参考删除实例
      • 通过控制台对Redis实例进行带宽临时扩容,可临时解决业务流量高峰,带宽超限的问题。