【问题标题】:AWS ElastiCache redis operations take more than 10 msAWS ElastiCache redis 操作耗时超过 10 毫秒
【发布时间】:2018-10-27 06:57:30
【问题描述】:

我发现 AWS 弹性缓存 redis GET/SET 的延迟非常高。使用一个 redis 实例 (cache.r3.2xlarge)。包括 set_type_commands、get_type_commands 和 hash_based_commands 在内的 redis 请求速率约为 3k rps。

SET 函数是一个简单的 SET 操作,而 GET 函数是 3 个命令(2 个 HGET 和 1 个 GET)的管道。如果我遗漏了什么,请告诉我。超过 10% 的 redis 请求耗时超过 10 毫秒。 AFAIK 3k rps 对于 redis 来说非常少,应该表现得更好。

在 SET 函数和 GET 函数上测量时间。

【问题讨论】:

  • 看起来你有很大的延迟。有没有一种工具可以让实例彼此靠近?

标签: amazon-web-services redis


【解决方案1】:

Cache.r3.2xlarge 对于这种负载来说是一个非常昂贵的实例,响应时间不应超过 3-4 毫秒。

你应该做下面提到的事情:-

  1. 通过cloudwatch监控Redis实例。
  2. 检查 Redis 慢查询日志。

slowlog length

slowlog get 200
1) (integer) 13
   2) (integer) 1309448128
   3) (integer) 30
   4) 1) "slowlog"
      2) "get"
      3) "100"

将帮助您检查影响 Redis 整体性能的慢查询。

通过它:- https://redis.io/commands/slowlog

【讨论】:

  • 云手表指标看起来不错(我需要检查什么具体的东西吗?)。 P99 约为 6 毫秒,但指标看起来像锯齿。有时我会看到调用 redis 大约/超过 15 毫秒的峰值。有什么建议吗?
  • 另一个重要的一点,当我们的服务在 3 个或更多实例上运行时,当我们将实例增加到 10 个时,redis 的性能会更好。
猜你喜欢
  • 1970-01-01
  • 2019-10-01
  • 2020-11-01
  • 2018-03-30
  • 2020-10-26
  • 1970-01-01
  • 2014-04-24
  • 2021-06-12
  • 1970-01-01
相关资源
最近更新 更多