2010-12-20 8 views
5

Mi servidor CouchDB (producción) a veces se cierra, sin que yo lo desee. Mientras inspeccionaba los registros, noté que Erlang/CouchDB (uno u otro) envía un latido del corazón, y que el latido del corazón es monitoreado. Cuando se produce un tiempo de espera, el servidor es brutalmente asesinado (couchdb -k). Esto es casi siempre un comportamiento no deseado, definitivamente en un servidor de producción.Tiempo de espera de latido del corazón CouchDB

Me he encontrado con this issue, que indica lo mismo e indica que esto ocurre principalmente durante las cargas pesadas del servidor, algo que también noté.

Estoy buscando una solución para mantener mi servidor en funcionamiento, pero para hacer eso necesito saber más acerca de este comportamiento. Lamentablemente, tanto the CouchDB wiki como the guide no proporcionan mucha información sobre esto (solo el parámetro en la API de cambios).

¿Alguien puede proporcionar más información al respecto?

+0

El problema al que hace referencia indica que el problema está relacionado con la versión de erlang vm y parece que se ha corregido en R13B. ¿Qué versión está utilizando? – ZeissS

Respuesta

6

El couchdb -k debería matar el proceso en segundo plano y, a continuación, reiniciar el sofá. Sin embargo, de forma predeterminada, la función de reinicio está deshabilitada. Para habilitarlo, debe usar el parámetro -r con un valor mayor que 0. Puede hacerlo en script bin/couchdb - cambie RESPAWN_TIMEOUT de 0 a p. Ej. 5.

+0

¡Gracias, intentaré esto! –

+0

Renuncié al uso del reinicio integrado de CouchDB y confié en scripts externos; todo, desde un simple ciclo while/sleep hasta un script upstart, terminaría por ser más confiable. (Esto puede haber mejorado después de 1.6.1, según alguien que finalmente se haya tomado el tiempo para descubrir la causa subyacente: https://issues.apache.org/jira/browse/COUCHDB-1917) – natevw

1

Lo más probable es que el corazón se lance cuando se inicia erlang vm.

Eche un vistazo al interruptor de corazón aquí http://erlang.org/doc/man/erl.html y su documentación aquí http://erlang.org/doc/man/heart.html.

Ahora, puede dar un enlace al repositorio de sofá que utiliza, para que podamos encontrar un script con 'erl something -heart' o grep it yourself.

No estoy seguro de cuál es el estado del sistema de construcción de sofá .. ¿utiliza la versión cloudant o apache puro?

+0

Estoy usando un repositorio para mantener mi instalación de CouchDB: http://rpmfind.net/linux/RPM/dag/redhat/el5/x86_64/couchdb-1.0.1-2.el5.rf.x86_64.html –

+0

try para modificar bin/couchdb.tpl.in (HEART_BEAT_TIMEOUT) pero es una suposición descabellada, por lo que quizás alguien con más experiencia pueda ayudarlo. – user425720

Cuestiones relacionadas