Wes*_*sty 5 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
Run Code Online (Sandbox Code Playgroud)
我们只是使用所有配置选项的默认值,除了我们更改1.6.1 delayed_commits = false(现在是2.1.1中的默认值).我想知道是否有一些默认值发生变化会使2.1.1如此糟糕.
当我setup从Fauxton UI 运行CouchDB时,它将以下内容添加到我的local.ini:
[cluster]
n = 1
Run Code Online (Sandbox Code Playgroud)
是否会导致CouchDB尝试使用群集,或者是否与此处没有条目相同?另外一件事,我删除了_global_changes数据库,因为它似乎会添加我们不需要的额外处理.
这是否导致 CouchDB 尝试使用集群,或者是否与这里根本没有条目相同?
从你的描述来看并不明显。如果您将 CouchDB 2.0 设置为集群,那么它就是这样工作的。根据您遵循的设置说明,您应该了解这一点:http://docs.couchdb.org/en/2.1.1/install/setup.html
您可以通过在磁盘上查找文件并查看它们是否位于shards目录中来判断。
我很确定您至少需要两个,因此设置n = 1似乎不是您应该做的事情。
如果您尝试在单节点中运行,请按照我上面链接的说明进行操作。
另一件事是,我删除了 _global_changes 数据库,因为它似乎会添加我们不需要的额外处理。
您可能不想删除数据库的随机部分,除非有说明可以这样做?