排查实例流量使用率高的问题

更新时间:
复制为 MD 格式

云数据库 Tair(兼容 Redis)实例作为更靠近应用服务的数据层,通常会执行较多的数据存取并消耗网络带宽。不同的实例规格对应的最大带宽有所不同,当超过该规格的最大带宽时,将对应用服务的数据访问性能造成影响。

步骤一:查询流量使用率

查询实例在指定时段的流量使用率。若您已明确流量突增的时间段,可跳过此步骤,直接查看步骤二:快速排查

本案例中,入流量和出流量的使用率快速上升并持续维持在90%。

说明
  • 通常来说,流量的平均使用率持续保持在80%时需引起注意,可能流量不足。

  • 需关注的监控指标为入流量使用率Intranet In Ratio)和出流量使用率Intranet Out Ratio)。

图 1. 流量使用率示例流量使用率示例

步骤二:快速排查

有多种情况可能导致实例流量的突增,您可以根据以下内容逐一进行排查。

说明

在进行排查之前,如遇紧急情况,您可以先手动临时调整实例带宽,以降低对业务的影响,从而获得较长的时间窗口来排查问题。

Key、热key

您可以先通过Top Key统计功能排除是否存在大Key、热Key。若存在,该功能会在控制台展示具体Key信息。

说明

影响:大Key会引发流量突增,而热Key则会引发流量持续上升。

控制台展示两个统计表格:Key(按QPS统计) Top100(默认阈值5000 QPS),列包含Key、实例/节点名称、数据类型、DB、访问频次;Key(子元素数量) Top100,列包含Key、实例/节点名称、数据类型、DB、元素个数。

  • 若存在热Key:从长远 建议 ,需将热Key按业务逻辑(如用户ID、时间范围)拆分。同时,您也可以使用如下功能以降低该问题带来的影响。

    • 启用QPS限流:支持自定义流量的读写类型、以及QPS阈值。启用后,将对客户端的请求量进行限流,从而提高系统的稳定性。

    • 开启读写分离 :提高实例的 读 性能,以更有效地应对热点Key问题。

  • 若存在大Key:建议按业务逻辑拆分、减少对大Key的访问或删除不必要的大Key等,更多信息请参见Key和热Key

慢请求

您可以通过慢请求查看近期是否执行过慢请求。若存在,该功能会在控制台展示具体命令信息。

说明

影响:慢请求可能会导致后续命令阻塞,同时也会引发带宽流量突增。

若存在,您可以考虑在生产环境禁用KEYSHGETALL等高危命令等。

业务流量增长

若经过上述步骤优化后,流量使用率依旧较高,可以考虑是业务流量的自然增长。您可评估升降至更大内存的规格,或者变更版本架构(例如升级至集群架构或读写分离架构),以承载更大的网络流量。

说明

在正式升级实例的规格前,您可以先购买一个按量付费的实例,测试要升级到的目标规格是否能够满足业务的负载需求,测试完成后可将其释放

若存在周期性的流量高峰,例如每天晚上22:00达到流量高峰,您可以使用带宽弹性伸缩定时升级带宽功能。