为什么有时将Couchdb从1.5升级到2.3导致View查询(读取)性能下降的原因。 (默认的单笔记CouchDB服务器)

时间:2019-06-26 06:36:25

标签: couchdb couchdb-2.x couchdb-1.6

我正在将Ubuntu 18.04上的CouchDB从1.5升级到2.3.1。我将CouchDB配置为具有默认设置的单个节点。在CouchDB中,我创建了一个视图,并且有两个服务器每5秒轮询一次具有不同键和组级别的视图。还有一台服务器正在将数据写入CouchDB数据库。

升级后,我们注意到一种奇怪的行为,即每隔几分钟,CouchDB中的GET查询处理时间会急剧增加,持续两分钟,然后又恢复正常,然后发生(就像执行某种模式)。

这里有一些请求样本,您可以看到一个响应花了4055毫秒,而另一个响应花了88毫秒

couchdb@127.0.0.1 <0.*.18> bd66679e31 *:5984 *.10 test GET /reporting/_design/term-reporting/_view/dashboard?stale=update_after&startkey=%5B%22TEST%22%2C2019%2C6%2C25%5D&endkey=%5B%22TEST%22%2C2019%2C6%2C25%5D&group=true&group_level=6 200 ok 4055

couchdb@127.0.0.1 <0.*.18> 9e4f74ed2f *:5984 *.10 test GET /reporting/_design/eopr-reporting/_view/dashboard?stale=update_after&startkey=%5B%22TEST%22%2C2019%2C6%2C25%5D&endkey=%5B%22TEST%22%2C2019%2C6%2C25%5D&group=true&group_level=6 200 ok 88

使用默认设置在CouchDB 1.5上没有发生这种情况。我尝试应用以下配置,但问题仍然存在。

delayed_commits : true
socket_options : [{nodelay, true}]

我还尝试使用替代stable=false&update=lazy的新参数stale=update_after来修改请求,但这不能解决问题。

有人知道吗,为什么会发生以及如何解决?

0 个答案:

没有答案