【发布时间】: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