Couchdb 3.1.1 在数周内逐渐增加磁盘延迟

Couchdb 3.1.1 在数周内逐渐增加磁盘延迟

我已经处理这个问题好几个星期了。

我有以下场景:

couchdb2.3.1-A <===> couchdb2.3.1-B <===> couchdb3.1.1-A <===> couchdb3.1.1-B

其中<===>代表两个拉取复制,每侧配置一个。即:couchdb1 从 couchdb2 拉取,反之亦然。

Couchdb 在 docker 容器中运行

如果在 处进行写入couchdb2.3.1-A,则它必须通过所有服务器,直到到达couchdb3.1.1-B

它们全都有专用硬盘。Couchdb 不与任何其他服务共享磁盘。

couchdb2.3.1 A并且B没有问题。

couchdb3.1.1-A随着时间的推移,磁盘延迟逐渐增加。因此,我们停止向其发出写入请求,并开始仅与 通信couchdb3.1.1-Bcouchdb3.1.1-A仍然接收写入,但仅通过复制协议。磁盘延迟没有变化。

自问题出现以来我们所做的改变:

  • 升级内核从4.15.0-55-generic5.4.0-88-generic
  • 将 Ubuntu 从 升级18.0420.04
  • 已删除_global_changes数据库couchdb3.1.1-A

更多信息:

  • Couchdb 正在使用 docker local-persist 卷。
  • 磁盘是用于2.3.1CouchDBs 的 WD Purple 和用于3.1.1CouchDBs 的 WD Black。
  • 我们只有一个数据库88GiB和 2 个视图:一个22GB和一个小视图30MB(高度更新)
  • docker stats显示couchdb3.1.1与2.3.1相比使用了大量内存:
    • 3.5GiB对于 couchdb3.1.1-A(不接收直接写入请求)
    • 8.0GiB对于 couchdb3.1.1-A(接收读取和写入请求)
    • 226MiB对于 2.3.1-A
    • 552MiB对于 2.3.1-B
  • 数据库压缩在夜间进行。问题只发生在白天,因为大多数写入操作都是在白天进行的。
  • 大部分配置都是默认的。

来自 munin 监控的延迟图:

磁盘延迟

任何帮助都将受到赞赏。

相关内容