若您希望分析云数据库 Tair(兼容 Redis)实例的性能,定位实例中的慢查询命令或潜在的性能瓶颈等问题,您可以通过查看慢日志对实例进行分析,找到解决性能问题、优化请求的线索。慢日志记录了执行时间超过指定阈值(slowlog-log-slower-than)的命令,默认为20毫秒,您也可以自定义该参数。
功能简介
实例的慢日志会记录执行时间超过指定阈值的请求,慢日志分为数据节点慢日志和代理慢日志。
Redis开源版 2.8版本实例不支持查询慢日志功能,您可以在中查看慢日志,但Redis开源版 2.8版本的慢日志不支持显示客户端地址等信息。
数据节点慢日志
数据节点慢日志中统计的命令执行时间仅包含命令在数据节点中的执行时间,不包含数据节点与代理或客户端的通信时间以及命令在单线程队列上的排队延迟等。
数据节点慢日志的保留时间为72小时,无数量限制。
由于实例性能出色,通常情况下,数据节点慢日志的数量较少。
相关参数
参数名 | 说明 |
slowlog-log-slower-than | 设置数据节点慢日志阈值,默认为20000微秒(即20毫秒)。 说明 通常情况下您感知到的延迟实际会高于本参数设置的值,因为感知时间中包含了数据在客户端、代理、数据节点之间传输和处理所消耗的时间。 |
slowlog-max-len | 设置最大慢日志条目数,默认为1024。 |
参数设置方法请参见配置参数概述。
代理慢日志
代理慢日志中统计的命令执行时间从代理向数据节点发出请求开始,到代理从数据节点收到相应的回复为止,包含了命令在数据节点中的执行时间、数据在网络中的传输时间以及命令的排队延迟等。
代理慢日志的保留时间为72小时,无数量限制。
由于代理慢日志反映的延迟与您在应用端感受到的延迟更相近,在排查实例超时问题时,建议多关注此类日志。
标准架构实例不提供代理慢日志。
相关参数
参数名 | 说明 |
rt_threshold_ms | 设置代理慢日志的阈值,默认为500毫秒。建议将该阈值配置为与客户端超时时间近似的值,推荐为200毫秒到500毫秒。 |
参数设置方法请参见配置参数概述。
操作步骤
访问实例列表,在上方选择地域,然后单击目标实例ID。
在左侧导航栏,单击。
在慢日志页面,您可以根据查询时间或关键字来过滤慢日志,如果是集群架构或读写分离架构实例,还支持通过节点类型和节点ID来过滤慢日志。
说明集群架构与读写分离架构实例的连接数据库的主机地址默认为Proxy IP地址,若您希望获取具体的客户端IP地址,可在参数设置中将ptod_enabled参数设置为
1,具体操作请参见配置参数概述。早期实例默认展示 Proxy IP(11 开头的 IP 地址),开启 ptod_enabled 参数后,Proxy 节点会将客户端真实源 IP 透传至后端数据节点。
该参数修改后立即生效,无需重启实例。
若控制台找不到 ptod_enabled 参数,需升级小版本到最新来支持:
Redis 开源版 7.0 需 7.0.1.2 及以上版本。
Redis 开源版 6.0 需 6.0.2.0 及以上版本。
Redis 开源版 5.0 需 5.2.0(云原生版 5.5.2.0)及以上版本。
特殊慢查询语句说明
此类请求为实例内核逻辑,与您的实际请求执行速率无直接关系,您可以忽略下述慢查询语句。
慢查询语句 | 说明 |
latency:eventloop | 实例运行时使用事件驱动模式,一次事件循环包括命令读取、解析、执行和返回结果整个过程。 |
latency:pipeline | 实例支持客户端的pipeline执行模式,该模式下客户端发送一批命令,待所有命令执行完后批量返回结果。集群版的代理服务器(Proxy)默认采用Pipeline模式向后端数据节点发送请求。 |
latency:fork |
|
相关API
API | 说明 |
查询实例在指定时间内产生的慢日志。 |