我们正在考虑将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
数据库,因为它似乎会添加我们不需要的额外处理。
答案 0 :(得分:1)
是否会导致CouchDB尝试使用群集,或者是否与此处没有条目相同?
根据您的描述,这一点并不明显。如果您将CouchDB 2.0设置为群集,那么它将如何工作。根据您遵循的设置说明,您应该了解这一点:http://docs.couchdb.org/en/2.1.1/install/setup.html
您可以通过查找磁盘上的文件并查看它们是否位于shards
目录中来判断。
我很确定你至少想要两个,所以设置n = 1
似乎不是你应该做的事情。
如果您尝试在单个节点中运行,请按照我上面链接的说明进行操作。
另外一件事,我删除了_global_changes数据库,因为它似乎会添加我们不需要的额外处理。
您可能不想删除数据库的随机部分,除非有说明这是正常的说明?