如何排查延迟问题?
最后更新于 2024年4月18日
症状
用户在使用 Redis Enterprise 或 Redis Cloud 数据库时遇到延迟或超时。
排查步骤
检查长时间运行的命令
使用命令 slowlog get <number of entries> with-complexity
,并尝试将这些条目与延迟或超时时间相关联。例如
redis-cli -h <DATABASE_ENDPOINT> -p <DATABASE_PORT> -a <PASSWORD> slowlog get 200 with-complexity
其中
DATABASE_ENDPOINT
是数据库端点 FQDN。DATABASE_PORT
是数据库监听端口PASSWORD
是数据库密码
复杂度
长时间运行命令的原因可能是操作的 复杂度 过高 (O(n)
) 或键过大(包含大数据量(例如,大于 1MB 的字符串)或包含大量成员的集合,如哈希、集合或列表(例如,超过 10K 个成员))。
资源
- 检查客户端应用服务器的 CPU 使用率;我们建议将使用率保持在 80% 以下。并考虑相应增加资源。
- 检查 Redis Enterprise 集群节点的 CPU、分片和
dmcproxy
使用率。我们建议将使用率保持在 80% 以下。 - 考虑相应增加资源和添加更多分片。
- 检查您的环境网络。使用外部工具,如
TCPdump
或其他分析工具来测量请求和响应时间,并确定瓶颈。
参考资料
有关 Redis Enterprise 中慢日志的更多信息,请参阅文章 查看 Redis 慢日志。有关更多监控工具,请参阅 RedisInsight 的慢日志面板。