【问题标题】:CouchDB Performance: 1.6.1 vs 2.1.1CouchDB 性能:1.6.1 与 2.1.1
【发布时间】:2018-03-14 21:21:32
【问题描述】:

我们正在考虑将 RHEL 服务器上的 CouchDB 从 1.6.1 升级到 2.1.1。不过,在我们这样做之前,我们想进行性能测试。所以我们创建了一个直接针对数据库的 JMeter 测试。它不使用任何随机值,因此测试将完全相同,我们可以比较两个结果。这只是一个独立的服务器,我们没有使用集群。我以完全相同的方式对两者进行了测试。我对 1.6.1 进行了测试,然后在同一台机器上安装了 2.1.1。我为每次测试运行创建了新的数据库。 [我还将 Erlang 更新到 R19.3。]

结果非常震惊:

Average response times: 
1.6.1:   271.15 ms
2.1.1:   494.32 ms

POST and PUTs were really bad ...
POST:
1.6.1:   38.25 ms
2.1.1:   250.18 ms

PUT:
1.6.1:   37.33 ms
2.1.1:   358.76

我们只是使用所有配置选项的默认值,除了我们将 1.6.1 更改为 delayed_commits = false(现在是 2.1.1 中的默认值)。我想知道是否有一些默认更改会使 2.1.1 变得如此糟糕。

当我从 Fauxton UI 运行 CouchDB setup 时,它在我的 local.ini 中添加了以下内容:

[cluster]
n = 1

这会导致 CouchDB 尝试使用集群,还是就像这里根本没有条目一样?另一件事是,我删除了_global_changes 数据库,因为它似乎会添加我们不需要的额外处理。

【问题讨论】:

  • 您想在这里提出的核心问题是什么?如果您将标题表述为一个问题,您可能会吸引更多人尝试回答。

标签: performance couchdb response-time


【解决方案1】:

这是否导致 CouchDB 尝试使用集群,还是就像这里根本没有条目一样?

从你的描述中看不出来。如果您将 CouchDB 2.0 设置为集群,那么它就是这样工作的。根据您遵循的设置说明,您应该知道这一点:http://docs.couchdb.org/en/2.1.1/install/setup.html

您可以通过在磁盘上查找文件并查看它们是否在 shards 目录中来判断。

我很确定您至少需要两个,因此设置 n = 1 似乎不是您应该做的事情。

如果您尝试在单节点中运行,请按照我上面链接的说明进行操作。

另外一件事,我删除了 _global_changes 数据库,因为它似乎会添加我们不需要的额外处理。

您可能不想删除数据库的随机部分,除非有说明说这样可以吗?

【讨论】:

    猜你喜欢
    • 2016-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    相关资源
    最近更新 更多