如何排查延迟问题?
最后更新于 2024 年 4 月 18 日
症状
用户在 Redis Enterprise 或 Redis Cloud 数据库中遇到延迟或超时问题。
故障排除
检查长时间运行的命令
使用命令 **slowlog get <条目数> 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)
) 或存在大键(包含大型数据大小的键(例如,超过 1 MB 的字符串)或集合(例如,哈希、集合或列表)具有成员(例如,超过 10,000 个成员)。
资源
- 检查您的客户端应用程序服务器 CPU 水平;建议将水平保持在 80% 以下。并考虑相应地增加资源。
- 检查 Redis Enterprise 集群节点的 CPU、分片和
dmcproxy
水平。建议将水平保持在 80% 以下 - 考虑相应地增加资源并添加更多分片。
- 检查您的环境网络。使用
TCPdump
等外部工具或其他分析工具来衡量请求和响应时间,并确定瓶颈。
参考资料
有关 Redis Enterprise 中慢日志的更多信息,请参阅文章 查看 Redis 慢日志 有关更多监控工具的信息,请参阅 RedisInsight 的慢日志面板