您可以在云数据库Redis版的控制台查看慢请求日志,找到解决性能问题、优化请求的线索。

前提条件

实例为如下任意版本:
  • Tair(Redis企业版)性能增强型
  • 云数据库Redis社区版4.0、5.0、6.0

背景信息

Redis的慢日志会记录执行时间超过指定阈值的请求,慢日志分为数据节点慢日志和代理慢日志。
说明 当Redis实例为标准架构时,仅包含数据节点慢日志。
慢日志类型 说明 相关Redis参数
数据节点慢日志
  • 数据节点慢日志中统计的命令执行时间仅包含命令在数据节点中的执行时间,不包含数据节点与代理或客户端的通信时间以及命令在单线程队列上的排队延迟等。
  • 由于Redis性能出色,通常情况下,数据节点慢日志的数量较少。
  • slowlog-log-slower-than:设置数据节点慢日志阈值,默认为20000微秒(即20毫秒)。
    说明 通常情况下您感知到的延迟实际会高于本参数设置的值,因为感知时间中包含了数据在客户端、代理、数据节点之间传输和处理所消耗的时间。
  • slowlog-max-len:设置最大慢日志条目数,默认为1024。

参数设置方法请参见设置实例参数

代理慢日志
  • 代理慢日志中统计的命令执行时间从代理向数据节点发出请求开始,到代理从数据节点收到相应的回复为止,包含了命令在数据节点中的执行时间、数据在网络中的传输时间以及命令的排队延迟等。
  • 代理慢日志的保留时间为72小时,无数量限制。
  • 由于代理慢日志反映的延迟与您在应用端感受到的延迟更相近,在排查Redis服务超时问题时,建议多关注此类日志。
rt_threshold_ms:设置代理慢日志的阈值,默认为500毫秒。建议将该阈值配置为与客户端超时时间近似的值,推荐为200毫秒到500毫秒。

参数设置方法请参见设置实例参数

操作步骤

  1. 访问Redis实例列表,在上方选择地域,然后单击目标实例ID。
  2. 在左侧导航栏,单击日志管理 > 慢日志
  3. 根据业务需求,选择过滤条件来筛选查询结果。
    筛选日志
    序号 说明
    选择节点的类型和节点ID。
    说明 实例为标准架构时,仅包含数据节点的慢日志,不会出现对应的选项,无需选择。
    选择查询的时间段,默认展示最近1小时的慢日志信息。
    输入关键字信息来过滤慢日志信息,例如输入bgsave
    说明

    集群架构与读写分离架构实例的连接数据库的主机地址默认为Proxy IP地址,若您希望获取具体的客户端IP地址,可在参数设置中将ptod_enabled参数设置为1,具体操作请参见设置实例参数

特殊慢查询语句耗时说明

  • latency:eventloop

    云数据库Redis版运行时使用事件驱动模式,一次事件循环包括命令读取、解析、执行和返回结果整个过程。latency:eventloop语句的执行时长表示某次事件循环的整体耗时。

  • latency:pipeline

    云数据库Redis版支持客户端的pipeline执行模式,该模式下客户端发送一批命令,待所有命令执行完后批量返回结果。latency:pipeline语句的执行时长表示pipeline执行模式下,批量执行一个客户端所有请求的整体耗时。

    说明 云数据库Redis集群版的代理服务器(Proxy)默认采用pipeline模式向后端Redis发送请求。
  • latency:fork

    latency:fork语句的执行时长表示执行fork创建子进程所消耗的时间,用户的数据量越大,fork消耗的时间越长。

相关API

API 说明
DescribeSlowLogRecords 查询Redis实例在指定时间内产生的慢日志。

相关文档

使用慢日志排查超时问题