【问题标题】:Reasons for Redis to slow downRedis 变慢的原因
【发布时间】:2012-11-07 04:44:17
【问题描述】:

Redis 工作/响应缓慢的原因可能是什么?

即我在 Stackoverflow 上发现,在 Redis 中存储大文件或数据会使其变慢。还有什么?

【问题讨论】:

    标签: database nosql redis


    【解决方案1】:

    正如new connections 所提到的,> 200 每分钟可能会导致缓慢。一种可能的解决方案是添加一个保持恒定连接数的代理:

    【讨论】:

      【解决方案2】:

      这个问题没有简单的答案。对于所有 NoSQL 或基于 SQL 的存储解决方案,有很多条件可能导致存储引擎的高延迟或缓慢。 Redis 也不例外。

      我建议先阅读:

      以下是潜在原因的非详尽列表:

      • 硬件不足(网络、内存、CPU)
      • 基于软件的虚拟化(例如低端硬件上的 Xen)
      • 内存不足,在操作系统级别生成交换
      • 在单线程引擎中执行的 O(n) 操作(如 KEYS)过多
      • 存储在 Redis 中的大型对象,导致通信缓冲区不受控制地扩展
      • 大量同时会话 (>30000)
      • 每秒连接操作太多(Redis 不是网络服务器,连接应该是永久的,而不是瞬时的)。
      • 客户端应用程序生成的往返次数过多(未使用流水线或聚合命令)
      • 由 bgsave 或 AOF 重写生成的大型 fork 操作(尤其是在 VM 上)
      • 使用 AOF 时与 I/O 相关的延迟
      • 同时触发多个过期操作的累积
      • 客户端和主/从通信缓冲区中的内存累积,或日志数据缓慢
      • TCP incast conditions 当网络带宽消耗很大时
      • 使用分布式存储(尤其是多云存储,例如 EC2 EBS)来存储转储或 AOF 文件

      可能还有很多其他原因,与您自己的应用程序产生的工作负载有关。

      如果有人想到其他一般原因,我们可以将其添加到此列表中。

      【讨论】:

      • 谢谢!我认为从哪里开始对我来说是一个很好的答案。
      猜你喜欢
      • 1970-01-01
      • 2014-07-29
      • 2014-09-16
      • 2015-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多