腾讯云分布式缓存数据库提供慢查询功能,分别统计 Redis 节点和 Proxy 节点的慢查询请求,记录命令内容、执行耗时、客户端来源等关键信息。本文将指导您如何在控制台上查看、筛选和导出慢查询日志。
操作场景
慢查询功能用于统计 Redis 引擎与 Proxy 代理节点中执行耗时超过阈值的请求,记录命令内容、执行耗时和客户端来源等信息,帮助您快速定位引发延迟的具体命令和节点,分析性能退化根因。典型适用场景如下:
业务响应延迟抖动时:通过按时间范围、耗时阈值和节点角色筛选慢查询,秒级定位导致延迟的命令和节点,快速恢复业务性能。
上线新功能前:评估新业务模块涉及的 Redis 命令执行耗时是否在预期范围内,避免上线后因慢命令拖累整体响应。
定期数据库性能巡检:定期查看慢查询记录,提前发现异常耗时的命令模式,防患于未然。
长周期趋势监控:将慢日志投递至日志服务 CLS,借助检索分析和仪表盘能力,对慢查询趋势进行长期追踪和告警。
功能说明
Redis 慢查询:统计请求经过 Redis 节点产生的慢查询记录,包含命令内容、执行时间、执行耗时及命令详情。
Proxy 慢查询:统计经过中间件代理节点产生的慢查询记录,记录客户端 IP、命令、执行耗时和详情。
慢查询分析:数据库智能管家 DBbrain 提供的慢查询分析服务,支持实例级别和 Proxy 级别的慢日志统计与耗时分布。详情请参见 慢日志分析。 前提条件
数据库实例的状态为运行中。
使用限制
|
产品版本 | Memcached 版不支持慢查询功能。 |
日志保留时间 | 慢日志保留15天。 |
查询频率 | 默认账号每秒最多查询15000次,自定义账号每秒最多查询20次。 |
查询性能 | 若查询结果返回缓慢,建议缩小时间范围或增加筛选条件。 |
字段说明
Redis 慢查询字段
|
执行时间 | 慢查询发生的具体时间点,精确到秒,用于定位慢查询出现的时刻并与业务日志、监控曲线进行时间对齐。 |
执行时长 (ms) | 该命令在 Redis 节点实际执行所消耗的时间,单位为毫秒。数值越大表示命令越慢,是判断慢查询严重程度的核心指标。 |
命令 | 产生慢查询的请求命令类型,例如 get、set、eval 等,用于快速识别是哪类操作导致了延迟。 |
命令详情 | 命令的完整内容,包含 Key 及具体参数,可据此定位涉及的数据对象、判断是否存在大 Key 或复杂运算。 |
节点 ID | 产生该慢查询的 Redis 节点标识。在集群架构下,可通过该字段区分慢查询来源,定位到具体的分片或节点。 |
Proxy 慢查询字段
|
执行时间 | 慢查询发生的具体时间点,精确到秒,用于定位慢查询出现的时刻并与业务日志、监控曲线进行时间对齐。 |
客户端 | 发起该请求的客户端 IP 地址,用于定位慢查询的来源业务或应用节点,便于排查具体调用方。 |
执行时长 (ms) | 请求在 Proxy 节点的整体处理耗时,单位为毫秒,涵盖从接收请求到返回响应的完整链路,反映客户端实际感知的延迟。 |
接收客户端请求时长 (ms) | Proxy 接收并读取客户端请求数据所消耗的时间,单位为毫秒。该值偏高通常与客户端网络质量或请求体过大有关。 |
发送客户端请求时长 (ms) | Proxy 向客户端返回响应数据所消耗的时间,单位为毫秒。该值偏高通常与返回结果集过大或客户端接收缓慢有关。 |
命令 | 产生慢查询的请求命令类型,例如 get、set、eval 等,用于快速识别是哪类操作导致了延迟。 |
命令详情 | 命令的完整内容,包含 Key 及具体参数,可据此定位涉及的数据对象、判断是否存在大 Key 或复杂运算。 |
操作步骤
步骤1:进入慢查询页面
2. 在右侧实例列表页面上方,选择地域。
3. 在实例列表中,单击目标实例 ID,进入实例详情页面。
4. 选择日志中心页签。
查看 Redis 节点慢查询:选择 Redis 慢查询子页签。
查看 Proxy 代理慢查询:选择 Proxy 慢查询子页签。
步骤2:查询慢查询记录
1. 在 Redis 慢查询或 Proxy 慢查询子页签中,设置以下筛选条件:
查询时间段:选择需要查询的时间范围,时间跨度不超过15天。
平均执行时间:选择命令请求超出时长的阈值。
Redis 慢查询支持1ms、5ms、10ms、20ms、30ms、40ms、50ms共7个档位,默认30ms。
Proxy 慢查询支持10ms、20ms、30ms、40ms、50ms共5个档位,默认30ms。
节点角色:仅 Redis 慢查询子页签支持,选择查询的节点角色,可选主节点或副本节点。
2. 单击查询,系统以列表形式返回当前节点在指定时间范围内,执行耗时超过平均时间的慢查询记录。Redis 慢查询和 Proxy 慢查询的字段略有不同,请参见 字段说明。 说明:
若查询结果返回缓慢,建议缩小时间范围或降低平均执行时间阈值,以减少数据扫描量。
Redis 慢查询
Proxy 慢查询
步骤3:导出慢日志
1. 在 Redis 慢查询或 Proxy 慢查询子页签右上方,单击导出。
2. 在弹出的对话框中,了解一次导出慢日志的限制数量,单击导出。
3. 系统将生成一个 Excel 文件并自动下载。打开文件即可查看导出时间段内的完整慢查询记录。
步骤4:使用慢日志分析
1. 在 Redis 慢查询或 Proxy 慢查询子页签右上方,单击慢日志分析。
2. 系统将跳转至数据库智能管家 DBbrain 的诊断优化 > 慢日志分析页面。
3. 选择查询时间段,根据需求查看实例级别或 Proxy 级别的慢日志统计信息、分段耗时分布和慢查询列表。具体操作,请参见 慢日志分析。 相关 API
|
DescribeSlowLog | 查询实例慢查询记录 | |
DescribeProxySlowLog | 查询代理慢查询 | |
注意事项
慢日志保留时间为15天,超过保留期限的日志将自动清除,请及时导出或通过 日志投递 功能将慢日志持久化存储至 CLS。 若实例为集群架构,慢查询会分别展示不同节点的慢查询记录,可通过节点 ID 字段区分来源。
导出慢日志时,每次导出有数量上限,超出部分请分次导出。
常见问题
慢查询和错误日志有什么区别?
慢查询记录的是执行耗时超过指定阈值的命令,用于定位性能瓶颈。错误日志记录的是执行失败并返回错误信息的命令,用于排查功能异常。两者关注维度不同,建议结合使用。
如何设置合理的慢查询阈值?
建议根据业务场景选择:对延迟敏感的实时业务(如支付、交易)可设置较低阈值(1ms - 10ms),对批量处理或后台任务可设置较高阈值(30ms - 50ms)。默认值为30ms。
慢查询日志可以保存更长时间吗?
可以。通过 日志投递 功能将慢日志投递至日志服务 CLS,CLS 支持最长3600天的日志保存时间。 相关文档