Bitcoind deja de responder a través de JSON-RPC, tiene que reiniciar manualmente todo el tiempo

Ejecuto bitcoind en AWS en Ubuntu. La máquina tiene 4 Gb de memoria y freemuestra que parte de ella permanece libre. Suficiente espacio en disco también.

Sin embargo, tengo que reiniciar bitcoind manualmente con bastante frecuencia, porque enviar solicitudes JSON-RPC devuelve un error de tiempo de espera. Es decir, al principio funcionan, pero luego no. No importa qué tipo de solicitud.

¿Alguien se ha encontrado con esto? ¿Por que sucede? ¿Alguien tiene una teoría plausible?

¿Qué versión de bitcoind estás ejecutando? Además, ¿está atrapada la cadena de bloques? (Puedes saber en qué bloque estás corriendo bitcoind getinfoo bitcoin-cli getinforespectivamente)
¿El aumento rpcthreadshace que el problema se detenga?
Algunos software de cliente HTTP no se ocupan de la función de conexión persistente que ofrece bitcoind. Las conexiones persistentes están desactivadas de forma predeterminada en 0.10 nuevamente, pero se pueden volver a habilitar con -rpckeepalive.

Respuestas (2)

  1. Actualice a la última versión estable. Vimos muchas menos fugas de memoria con .10 en ubuntu
  2. ejecute un trabajo cron para reiniciarlo todas las noches alrededor de las 4:00 am est cuando hay menos transacciones. Esto reducirá la fuga de memoria
  3. asegúrese de que su caja tenga al menos 4 gigas de ram y una partición de intercambio de 2 gigas.
  4. Danos más información aquí. como la distribución de linux, las estadísticas de la máquina y qué tipo de llamadas de rpc haces a menudo.

He observado que si el cliente HTTP que envía la solicitud JSON-RPC no envía un Connection: closeencabezado, el servidor bitcoind RPC deja de responder después de varias llamadas.

De hecho, parece haber algunos problemas con ciertos clientes y conexiones persistentes. 0.10 deshabilita las conexiones persistentes por defecto.