如何排查延迟问题?

最后更新于 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 的慢日志面板