CouchDB心跳超时

5
我的CouchDB(生产)服务器有时会在我不想要的情况下关闭。在检查日志时,我注意到Erlang/CouchDB(其中之一)发送了一个心跳信号,并且该心跳信号被监视。当发生超时时,服务器会被粗暴地杀死(couchdb -k)。这几乎总是不需要的行为,特别是在生产服务器上。
我遇到了此问题,它表明相同的现象并指出这主要发生在服务器负载较重时,我也注意到了这一点。
我正在寻找一种解决方案来使我的服务器运行正常,但为了做到这一点,我需要了解更多信息。不幸的是,CouchDB维基指南都没有提供关于此的详细信息(只有更改API中的参数)。
有人可以提供更多关于此的信息吗?

您所提到的问题指出,该问题与Erlang VM版本有关,并且似乎在R13B中已得到解决。您使用的是哪个版本? - ZeissS
2个回答

6

couchdb -k 命令可以杀死后台进程,然后重新启动couch。然而,默认情况下重新启动功能是禁用的。要启用它,您应该使用-r参数,并将其值设置为大于0。您可以在bin/couchdb脚本中完成这个操作-将RESPAWN_TIMEOUT从0更改为例如5。


我放弃了使用CouchDB内置的重启功能,转而依赖于外部脚本——从简单的while/sleep循环到upstart脚本,所有这些都更加可靠。 (根据某个人的说法,在1.6.1之后可能已经得到改善,因为他们可能最终花时间找出了潜在原因:https://issues.apache.org/jira/browse/COUCHDB-1917) - natevw

1

最有可能的是,当Erlang虚拟机启动时启动的心脏。

在这里查看heart开关http://erlang.org/doc/man/erl.html以及其文档http://erlang.org/doc/man/heart.html

现在,您可以提供您使用的couch repo的链接,以便我们可以找到一个带有“erl something -heart”的脚本,或者自己进行grep。

我不确定couch构建系统的状态..您使用cloudant版本还是纯apache?


我正在使用一个仓库来维护我的CouchDB安装:http://rpmfind.net/linux/RPM/dag/redhat/el5/x86_64/couchdb-1.0.1-2.el5.rf.x86_64.html - Peter Kruithof
尝试修改bin/couchdb.tpl.in(HEART_BEAT_TIMEOUT),但这只是一个猜测,也许有更有经验的人可以帮助你。 - user425720

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接