实例的诊断报告从性能水位、访问倾斜情况、慢日志等多方面评估实例的健康状况,帮助您快速定位实例的异常情况。

前提条件

发起实例诊断

诊断报告组成

实例基本信息

展示实例的ID、规格、类型及地域信息。

图 1. 实例基本信息
实例基本信息

健康状况概要

展示实例诊断的结果,并对健康状态进行评分(满分为100分)。如果未达满分,您需要关注展示的诊断项和详细信息。

图 2. 健康状况概要
健康状况概要

性能水位

展示实例关键性能指标的统计信息及状态,您需要特别关注状态为危险的性能指标。

说明 当您的实例为 集群架构读写分离架构时,您需要关注性能指标是否发生倾斜及倾斜的数据节点,同时您还可以结合 Top 5 节点中各性能指标的曲线图,重点关注负载较高数据节点。
图 3. 性能水位
性能水位
性能指标 危险阈值 影响 可能的原因及排查方法
CPU使用率 60% CPU使用率持续升高将影响实例整体的吞吐量和客户端应用的响应速度,极端情况下甚至会导致应用不可用。

可能的原因:

  • 执行高复杂度的命令。
  • 存在热点Key。
  • 频繁建立连接。

排查方法,请参见排查Redis实例CPU使用率高的问题

内存使用率 80% 内存使用率持续升高可能导致Key频繁被逐出、响应时间上升、QPS(每秒访问次数)不稳定等问题,进而影响业务运行。 可能的原因:
  • 内存被数据占满。
  • 大Key较多。

排查方法,请参见排查Redis实例内存使用率高的问题

连接数使用率(数据节点) 80% 数据节点的连接数被打满后将会导致连接超时或失败。
说明
  • 如果实例为集群架构,且客户端通过直连地址连接至Redis实例,此指标具备参考价值。
  • 如果实例为集群或读写分离架构,且客户端通过Proxy节点连接至Redis实例,此监控指标不具参考价值,您需要性能监控关注Proxy节点的连接数。具体操作,请参见查看监控数据

可能的原因:

  • 访问量突增。
  • 空闲连接长时间未释放。

排查方法,请参见分析Redis实例的实时会话

网络入口流量 80% 当网络的入口或出口超过该规格的最大带宽时,应用服务的性能将会受到影响。

可能的原因:

  • 业务流量突增。
  • 频繁读写大Key。

排查方法,请参见排查Redis实例流量使用率高的问题

网络出口流量 80%

当您的实例为集群架构读写分离架构时,系统还会综合分析上述性能指标,来衡量实例整体访问的均衡度并体现在诊断报告中。访问倾斜的判断标准、可能的原因及排查方法请参见下表。

说明 如果诊断报告中提示某个性能指标发生了访问倾斜,您需要关注具体的倾斜节点。
访问倾斜判断标准 可能的原因 排查方法

同时满足下述条件:

  • 实例的所有数据节点的性能指标峰值大于下述阈值:
    • CPU使用率:10%。
    • 内存使用率:20%。
    • 网络入口和出口流量:5 MB/s。
    • 连接数使用率:5%。
  • 性能指标的均衡度计算结果大于1.3,计算公式为:max{各数据节点的性能指标平均值} ÷ 所有数据节点的性能指标平均值的中位数。

    例如实例包含4个数据节点,CPU使用率的平均值分别为10%、30%、50%、60%,则中位数为40%,计算结果为1.5(即60%÷40%)。由于该值大于1.3,系统判断该实例的CPU使用率发生倾斜。

  • 某个数据节点存在较多的大Key。
  • 某个数据节点存在热点Key。
  • 设置的Hash Tag不合理。
    说明 当某些Key的Hash Tag设置相同时,这些Key会被存储在同一数据节点中。如果大量的Key设置相同的Hash Tags将会导致数据集中在某个节点。

TOP 10 节点慢请求

展示发生慢请求次数排名前十的数据节点,并展示对应的慢请求信息,统计来源如下:

  • 系统审计日志中保存的数据节点慢日志(仅保留4天)。
  • 数据节点本身记录的慢日志(仅保存最近的1024条)。您可以通过redis-cli连接实例并执行SLOWLOG GET查看。
图 4. 慢请求
慢请求

您可以根据展示的慢请求具体命令分析是否存在不合理的命令,不同原因对应的解决方案如下。

原因 解决方法

执行时间复杂度为O(N)或更高的高消耗命令引起,例如keys *命令。

评估并禁用高风险命令和高消耗命令,例如FLUSHALLKEYSHGETALL等。具体操作,请参见禁用高风险命令
读写到数据节点中的大Key引起。 对大Key进行分析和评估,具体操作,请参见通过缓存分析快速发现大Key,然后从业务方向对大Key进行拆分。