在我将couchdb从1.6.1迁移到2.3.1的过程中,couchup实用程序花了很多时间来重建视图。couchup实用程序存在内存问题。数据库大小为500 GB。这需要永远的时间。已经快5到6天了,还没有完成。有没有办法加快速度呢?
当尝试进行复制时,在couchup运行2-3分钟后,couchdb会因为内存泄漏问题而死,然后再次启动。复制大约需要10天。对于replicate,它显示进度条,但对于rebuild视图,它不显示进度条。我不知道已经完成了多少。
couchdb安装在RHEL Linux服务器上。
发布于 2020-12-17 02:51:58
减少积压增长:
当couchup遇到超过5秒才能重建的视图时,couchup将继续调用额外的视图urls,从而触发它们的重建。一旦一些长时间运行的视图重建正在运行,即使是较短的重建也将至少需要5秒,从而导致大量积压。如果单个数据库很大,或者(map/reduce函数效率非常低),最好将超时设置为5分钟左右。如果您看到的不止两个:
Timeout, view is processing. Moving on.消息可能是时候取消couchup并将超时时间增加一倍。
观察指数增长
默认情况下,view_index_dir与数据库目录相同,所以如果数据在/var/lib/couchdb/shards中,那么/var/lib/couchdb就是配置目录,索引存储在/var/lib/coucdh/.shards中。您可以观察哪些索引碎片文件正在创建和增长,或者将view_index_dir移动到单独的位置以便于观察。
哪些资源即将耗尽?
一般来说,您可以调优couchdb,如果系统没有重新构建所有索引,则很难说是否需要调优,等等。
特别是,您可能希望查找并禁用任何自动压缩。查看/proc/[couchdb proc]中的文件,找出有效的fd限制,有多少打开的文件,以及崩溃是否发生在特定数量的打开的文件周围。由于分片,打开文件的数量通常是早期版本的倍数。
查看内存增长情况,找出它是否足够稳定,以便使用交换来防止问题。
https://stackoverflow.com/questions/65319019
复制相似问题