View 在couchdb从1.6.1迁移到2.3.1的过程中,由于内存问题,couchup实用程序需要花费大量时间重建视图

View 在couchdb从1.6.1迁移到2.3.1的过程中,由于内存问题,couchup实用程序需要花费大量时间重建视图,view,erlang,couchdb,rebuild,View,Erlang,Couchdb,Rebuild,在我将couchdb从1.6.1迁移到2.3.1的过程中,couchup实用程序花费了大量时间来重建视图。couchup实用程序存在内存问题。数据库的大小在500 GB范围内。这要花很长时间。这已经快5到6天了,仍然没有完成。有没有办法加快速度 在尝试进行复制时,couchup运行2-3分钟后,couchdb因内存泄漏问题而死亡,然后再次启动。复制大约需要10天。对于复制,它显示进度条,但对于重建视图,它不显示进度条。我不知道已经做了多少 couchdb安装在RHEL Linux服务器中。减少积

在我将couchdb从
1.6.1
迁移到
2.3.1
的过程中,couchup实用程序花费了大量时间来重建视图。couchup实用程序存在内存问题。数据库的大小在500 GB范围内。这要花很长时间。这已经快5到6天了,仍然没有完成。有没有办法加快速度

在尝试进行复制时,couchup运行2-3分钟后,couchdb因内存泄漏问题而死亡,然后再次启动。复制大约需要10天。对于复制,它显示进度条,但对于重建视图,它不显示进度条。我不知道已经做了多少

couchdb安装在RHEL Linux服务器中。

减少积压增长: 当couchup遇到重建耗时超过5秒的视图时,couchup将继续调用其他视图URL,从而触发它们的重建。一旦大量长时间运行的视图重建正在运行,即使是更短的重建也将至少需要5秒钟,从而导致大量积压。如果单个数据库很大或者(map/reduce函数效率很低),那么最好将超时设置为5分钟左右。如果您看到的不止一对:

 Timeout, view is processing. Moving on.
消息可能是时候杀死couchup并加倍超时了

观察指数增长 默认情况下,
view\u index\u dir
与数据库目录相同,因此如果数据位于
/var/lib/couchdb/shards
中,则
/var/lib/couchdb
是配置的目录,索引存储在
/var/lib/coucdh/.shards
中。您可以观察正在创建和增长的索引碎片文件,或将其移动到单独的位置,以便于观察

什么资源正在耗尽? 一般来说,您可以调优couchdb,一旦系统没有重建所有索引等,就很难说是否需要调优

特别是,您需要查找并禁用任何自动压缩。查看
/proc/[couchdb-proc]
中的文件,找出有效的fd限制和有多少打开的文件,以及崩溃是否发生在特定数量的打开文件周围。由于分片,打开的文件数通常是早期版本中文件数的倍数


查看内存增长情况,并确定其稳定性是否足以使用交换来防止问题。

感谢您的回复。我尝试将超时设置为5分钟,但脚本运行1分钟后仍然失败。看起来它再次遇到性能问题。即使CPU和内存增加了4次。requests.exceptions.ConnectionError:(“连接中止”,错误(111,“连接被拒绝”),您如何确定内存不足?你们可以运行出文件描述符等文件描述符,你们可以运行出文件描述符等,{{{{nocoatch,{os_进程错误,{退出状态,1}}}},{{cocococococo层,1}}},{{cococococococo层,1},{cococococo层,1},你们们可以运行出文件描述符,等文件描述符,你们们,你们们,你们们,进程,提示符,提示符,提示,2,2,2,{{cocococococococococococococococococococococococococococococococoz os os os os os os os os,提示符,提示,提示符,提示符,提示符,提示符,提示符,提示符,提示符,2,提示符,提示符,提示符,2,2,提示符,提示符,2,提示符,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2“},{line,199}]},{lists,foldl,3,[{file,“lists.erl”},{line,1263}]},{coach_-mrview_更新程序,map_-docs,2,[{file,“src/coach_-mrview_-updater.erl”},{line,206}]}有时我会看到错误消息,例如高内存水印或最差内存用户RAM大小和db_大小(碎片大小,最大文件大小)之间的近似关系是什么?您可以尝试减少视图一次可以处理的文档数量,即:
[view\u updater]queue\u item\u cap=100
感谢您的指导@lossleader。我在local.ini[view\u updater]中添加了以下内容min_writer_items=10 min_writer_size=2097152。但仍然没有区别。它再次使用free-g、sar-u 5命令检查内存和cpu。对于内存70%仍然可用,对于cpu 80%可用。但是当我运行$top命令时,对于beam.smp进程,它将cpu%显示为300%。正如建议的,我为v创建了单独的文件夹查看。我没有看到在视图文件夹中创建任何文件。它看起来与内存或CPU无关。有2个碎片