【问题标题】:CouchDB parallel replications causes high cpu usageCouchDB 并行复制导致高 CPU 使用率
【发布时间】:2018-04-02 21:12:01
【问题描述】:

我有一个像这样的每用户数据库架构:

大约有 200 个用户数据库,每个数据库都有一个到主沙发的连续复制链接。 (都在同一个沙发实例中)问题是任何给定时间的 CPU 使用率总是接近 100%。

数据库处于空闲状态,因此没有数据被写入/读取。每个数据库只有几 KB 的数据,所以我认为此时负载不是问题。主数据库大小小于 10 MB。

我该如何调试这个性能问题?

【问题讨论】:

  • 您使用的是 CouchDB 2.1 吗?
  • @AlexisCôté 是的
  • 基于对类似情况的一些建议,我增加了 max_dbs_open 值,这提供了轻微的改进。但我仍然觉得我将来可能会遇到重大的扩展问题。

标签: database nosql couchdb replication pouchdb


【解决方案1】:

您应该看看https://github.com/redgeoff/spiegel - 它是一种以可扩展方式处理许多 CouchDB 复制的工具。基本上,它通过监听 _global_changes 端点并仅在需要时创建复制来实现。

在最近的 CouchDB 版本(2.1.0+)中,复制器得到了改进,但我认为对于复制每个用户的数据库,使用像 Spiegel 这样的外部机制来管理活动复制的数量仍然是有意义的。

【讨论】:

    【解决方案2】:

    提醒一下,CouchDB 2.1.0 中有一些 security flaws,您可能需要升级到 2.1.1。也许你被黑了like this one

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 2013-02-12
      相关资源
      最近更新 更多