【问题标题】:AWS Elasticache CPU usage exceeding 100%AWS Elasticache CPU 使用率超过 100%
【发布时间】:2016-12-15 07:02:56
【问题描述】:

我们一直在为我们的应用程序使用 AWS Elasticache。我们最初将 CPU 警报阈值设置为 22%(4 核节点,因此实际上是 90% 的 CPU 使用率),这是基于推荐的阈值。但我们经常看到 CPU 利用率超过 25% 到 28%、34% 之类的值。

考虑到 Redis 是单线程的,我想了解这在理论上是怎么可能的?我认为可能发生这种情况的唯一方法是,如果其他内核上发生维护操作,这可能会使 CPU 使用率超过 25%。即使集群负载很高,它也应该将 CPU 使用率限制在 25%,并且可能会开始为客户端超时。谁能帮我理解一下单线程Redis实例的CPU使用率在什么场景下可以超过100%的CPU使用率?

【问题讨论】:

    标签: amazon-web-services redis amazon-elasticache


    【解决方案1】:

    Redis 事件循环是单线程的。 Redis 进程本身不是。有几个额外的线程可以使一些 I/O 绑定操作脱机。现在,这些线程不应该消耗 CPU。

    不过,Redis 还派生出子进程来处理繁重的操作,例如 AOF 重写或 RDB 保存。除了 Redis 事件循环消耗之外,每个分叉进程通常会消耗 100% 的 CPU 内核(除非操作因 I/O 变慢)。

    如果您发现 CPU 消耗经常很高,可能是由于 AOF 和 RDB 配置错误(即 Redis 实例重写 AOF 或生成转储过于频繁)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-02
      • 2021-03-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多