慢日志问题极大地影响数据库的稳定性,当数据库出现负载高、性能抖动等问题时,数据库管理员或开发首先会查看是否有慢日志在执行。数据库自治服务DAS(Database Autonomy Service)支持慢日志分析功能,会统计并分析数据库中执行时间超过阈值的请求,帮助您快速定位并解决数据库性能问题,提高系统的稳定性和可靠性。
视频介绍
前提条件
数据库引擎为:
云数据库 Tair(兼容 Redis)
MyBase Redis
目标数据库实例已接入DAS,并且接入状态显示为连接正常,接入方法详情请参见接入阿里云数据库实例。
背景信息
通过慢日志统计信息,可查看实例的慢日志信息,帮助您方便地找到执行次数最多的慢日志、执行耗时最长的慢日志、平均扫描行数最多的慢日志等。
慢日志由数据库内核输出,不同数据库引擎的配置参数及阈值不相同,具体的配置参数和阈值请参见对应数据库引擎的官方文档。
操作步骤
登录DAS控制台。
在左侧导航栏中,单击智能运维中心 > 实例监控。
找到目标实例,单击实例ID,进入目标实例详情页。
在左侧导航栏单击 。
在慢日志详情页,选择需要查看的时间段,查看该时间段内慢日志趋势、事件分布和慢日志明细。
说明选择时间范围时,查询结束时间需晚于查询开始时间,且查询开始时间和查询结束时间的间隔不能超过7天,您可以查询最近一个月内的慢日志信息。
您可以在慢日志趋势图中选择某个时间点,查看该时间点的慢日志明细。
说明集群架构与读写分离架构实例支持提供数据节点与代理节点的慢日志详情,以及各个节点的慢请求数量。
您可以单击
,将慢日志信息保存到本地查看。
单击
,可携带当前已选择和输入的参数,跳转至OpenApi控制台,进行API调试。
在事件分布区域:
可以查询到指定时间范围内的慢日志事件,单击后可查询事件详情。
在慢日志明细区域,默认展示所有慢日志的详细信息(执行完成时间、数据库、慢查询语句、执行耗时(毫秒)、连接数据库的主机地址),您可以单击设置进行过滤。
特殊慢查询语句耗时说明
此类请求为实例内核逻辑,与您的实际请求执行速率无直接关系,您可以忽略下述慢查询语句。
latency:eventloop
云数据库 Tair(兼容 Redis)运行时使用事件驱动模式,一次事件循环包括命令读取、解析、执行和返回结果整个过程。
latency:eventloop
语句的执行时长表示某次事件循环的整体耗时。latency:pipeline
云数据库 Tair(兼容 Redis)支持客户端的Pipeline执行模式,该模式下客户端发送一批命令,待所有命令执行完后批量返回结果。云数据库Redis集群版的代理服务器(Proxy)默认采用Pipeline模式向后端Redis发送请求。
latency:pipeline
语句的执行时长表示pipeline执行模式下,批量执行一个客户端所有请求的整体耗时。latency:fork
latency:fork
语句的执行时长表示执行fork创建子进程所消耗的时间,用户的数据量越大,fork消耗的时间越长。
常见问题
Q:为什么能够正常访问旧版慢日志,而访问新版慢日志时却会出现权限错误的提示(例如,NoPermission和Forbidden.RAM)?
A:新版慢日志页面经过重新设计,提供了更为强大的数据过滤和筛选功能,其所需的权限策略(Action)也与旧版慢日志有所不同。若您没有对应的权限策略,则无法正常访问新版慢日志页面。请参考RAM用户授权文档,为RAM用户授予如下权限策略:
必要权限:慢日志趋势图数据(DescribeSlowLogHistogramAsync)、慢日志模板统计数据(DescribeSlowLogStatistic)、慢日志明细数据(DescribeSlowLogRecords)、事件中心数据(GetInstanceEventWithGroupType)、性能趋势数据(GetPerformanceMetrics)。
建议权限:对SQL进行打标(CreateSqlTag)、获取SQL标签(DescribeDasQueryTagNames)。