CouchDB性能:1.6.1 vs 2.1.1

时间:2018-03-14 21:21:32

标签: performance couchdb response-time

我们正在考虑将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数据库,因为它似乎会添加我们不需要的额外处理。

1 个答案:

答案 0 :(得分:1)

  

是否会导致CouchDB尝试使用群集,或者是否与此处没有条目相同?

根据您的描述,这一点并不明显。如果您将CouchDB 2.0设置为群集,那么它将如何工作。根据您遵循的设置说明,您应该了解这一点:http://docs.couchdb.org/en/2.1.1/install/setup.html

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

我很确定你至少想要两个,所以设置n = 1似乎不是你应该做的事情。

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

  

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

您可能不想删除数据库的随机部分,除非有说明这是正常的说明?