Chris Snow Asked: 2015-09-15 07:40:14 +0800 CST2015-09-15 07:40:14 +0800 CST 2015-09-15 07:40:14 +0800 CST 停止正在运行的压缩过程 772 我需要在生产 CouchDB 实例上运行压缩,该实例之前可能没有运行过压缩。 如果压缩给 CouchDB 实例带来过多的额外负载,是否可以安全地终止压缩过程?如果是这样,怎么做? couchdb 2 个回答 Voted Best Answer awenkhh 2015-09-15T23:53:41+08:002015-09-15T23:53:41+08:00 在压缩过程中,会写入一个新的 .couch 文件。因此,当您中断压缩时,您会做什么使文件无用。停止压缩 (iirc) 的唯一方法是停止 CouchDB。不是一个好主意。 通常,compaction 是一个后台进程。数据库读取不受它的影响 - 也适用于大量读取!如果您有繁重的写入过程,则压缩可能永远不会结束,因为编写和更新文档比压缩更快。 您可以考虑将压缩安排到一个时隙,在该时隙中您知道数据库的容量不是 100%。你这样做是local.ini这样的: ; configuration for automatic compaction. ; see: http://docs.couchdb.org/en/latest/config/compaction.html [compactions] _default = [{db_fragmentation, "70%"}, {view_fragmentation, "60%"}, {from, "02:00"}, {to, "05:00"}] 这意味着,仅在夜间 2 和 5 期间运行自动压缩,并且仅在数据库碎片大于等于 70% 且视图碎片大于等于 60% 时运行 更多信息可以在这里找到:http: //docs.couchdb.org/en/latest/maintenance/compaction.html 如果您有任何问题,非常欢迎您加入[email protected]邮件列表或加入 IRC #couchdb-dev 或 #couchdb 在 irc.freenode.net TheodoreC 2018-01-27T11:58:37+08:002018-01-27T11:58:37+08:00 你可以停止压缩... 创建了一个 .compact 文件 你可以删除它,然后运行 $ lsof | grep -i 已删除 | grep 梁 从那里开始,获取 couchdb PID 和 FD(文件描述符),即。20u 并将文件归零: /proc/PID/fd/fd_number
在压缩过程中,会写入一个新的 .couch 文件。因此,当您中断压缩时,您会做什么使文件无用。停止压缩 (iirc) 的唯一方法是停止 CouchDB。不是一个好主意。
通常,compaction 是一个后台进程。数据库读取不受它的影响 - 也适用于大量读取!如果您有繁重的写入过程,则压缩可能永远不会结束,因为编写和更新文档比压缩更快。
您可以考虑将压缩安排到一个时隙,在该时隙中您知道数据库的容量不是 100%。你这样做是
local.ini
这样的:这意味着,仅在夜间 2 和 5 期间运行自动压缩,并且仅在数据库碎片大于等于 70% 且视图碎片大于等于 60% 时运行
更多信息可以在这里找到:http: //docs.couchdb.org/en/latest/maintenance/compaction.html
如果您有任何问题,非常欢迎您加入[email protected]邮件列表或加入 IRC #couchdb-dev 或 #couchdb 在 irc.freenode.net
创建了一个 .compact 文件
你可以删除它,然后运行 $ lsof | grep -i 已删除 | grep 梁
从那里开始,获取 couchdb PID 和 FD(文件描述符),即。20u 并将文件归零: