2010-12-20 2 views
5

Mein CouchDB (Produktion) Server wird manchmal heruntergefahren, ohne dass ich es möchte. Bei der Überprüfung der Protokolle bemerkte ich, dass Erlang/CouchDB (der eine oder andere) einen Herzschlag sendet, und dieser Herzschlag wird überwacht. Wenn ein Timeout auftritt, wird der Server brutal getötet (couchdb -k). Dies ist fast immer unerwünschtes Verhalten, definitiv auf einem Produktionsserver.CouchDB Herzschlag Time-Out

Ich bin auf this issue gestoßen, die das gleiche angibt und angibt, dass dies vor allem bei hohen Serverlasten auftritt, etwas, das ich auch bemerkt habe.

Ich suche nach einer Lösung, um meinen Server laufen zu lassen, aber um das zu tun, muss ich mehr über dieses Verhalten wissen. Leider geben sowohl the CouchDB wiki als auch the guide nicht viele Informationen dazu (nur der Parameter in der API für Änderungen).

Kann jemand mehr Informationen dazu liefern?

+0

Das Problem, auf das Sie verwiesen haben, besagt, dass das Problem mit der erlang vm-Version zusammenhängt und in R13B behoben werden soll. Welche Version verwendest du? – ZeissS

Antwort

6

Die couchdb -k sollte den Hintergrundprozess beenden und dann sollte Couch neu gestartet werden. Standardmäßig ist die Neustartfunktion jedoch deaktiviert. Um es zu aktivieren, sollten Sie -r Parameter mit einem Wert größer als 0 verwenden. Sie können es in bin/couchdb Skript tun - ändern RESPAWN_TIMEOUT von 0 zu z. 5.

+0

Vielen Dank, ich werde es versuchen! –

+0

Ich habe es aufgegeben, den integrierten Neustart von CouchDB zu verwenden, und habe mich auf externe Skripte verlassen - alles, von einer einfachen While/Sleep-Schleife bis zu einem Upstart-Skript, wäre am Ende zuverlässiger. (Dies könnte sich nach 1.6.1 verbessert haben, nach einer Person, die sich möglicherweise die Zeit genommen hat, um die zugrunde liegende Ursache herauszufinden: https://issues.apache.org/jira/browse/COUCHDB-1917) – natevw

1

Am wahrscheinlichsten Herz ist das Herz gestartet, wenn erlang vm startet.

Werfen Sie einen Blick auf Herzschalter hier http://erlang.org/doc/man/erl.html und ihre Dokumentation hier http://erlang.org/doc/man/heart.html.

Jetzt können Sie entweder einen Link zu Couch Repo geben, den Sie verwenden, so dass wir ein Skript mit 'erl something-heart' finden oder es selbst herausfinden können.

Ich bin mir nicht sicher, was ist der Status von Couch-Build-System .. verwenden Sie Cloudant-Version oder Apache?

+0

Ich benutze ein Repository, um meine CouchDB-Installation zu verwalten: http://rpmfind.net/linux/RPM/dag/redhat/el5/x86_64/couchdb-1.0.1-2.el5.rf.x86_64.html –

+0

versuchen zu ändern bin/couchdb.tpl.in (HEART_BEAT_TIMEOUT), aber es ist eine wilde Vermutung, vielleicht kann jemand erfahrener Ihnen helfen. – user425720