Errores 502 "aleatorios"

Tengo una instalación de Discourse ejecutándose en un servidor GCE. Los usuarios han reportado problemas con el sistema devolviendo aleatoriamente errores 502. Puedo replicar la situación haciendo clic en los enlaces Más recientes, Nuevo, Sin leer, Top y Categorías. sooner o tarde, uno de ellos devolverá un error 502.

He revisado los registros de mi servidor proxy y está registrando entradas como esta para las URL fallidas:
“upstream prematurely closed connection while reading response header from upstream”. Hay una cantidad muy grande de estos errores, para URLs aparentemente aleatorias.

Estos son los pasos que he tomado para intentar resolver el problema basándome en publicaciones que he visto:

  • Actualicé el sistema operativo
  • Actualicé Docker
  • Actualicé Discourse
  • Reinicié el servidor

La instalación original se realizó utilizando la guía de configuración de Docker Cloud. Luego seguí una guía para cambiar las copias de seguridad y las imágenes para usar S3.

Mi servidor está ejecutando:
Ubuntu 14.04.6 LTS (GNU/Linux 4.4.0-148-generic x86_64)

Según discourse-doctor:

     VERSIÓN DE DOCKER: Docker version 18.06.3-ce, build d7080c1

==================== INFORMACIÓN DE MEMORIA ====================
RAM (MB): 4820

             total       used       free     shared    buffers     cached
Mem:          4707       2206       2501        140        101        948
-/+ buffers/cache:       1156       3550
Swap:         2047          0       2047

==================== VERIFICACIÓN DE ESPACIO EN DISCO ====================
---------- Espacio en disco del SO ----------
Sistema de archivos  Tamaño  Usado  Disponible  Uso% Montado en
/dev/sda1            50G     33G    15G         70%  /
/dev/sda1            50G     33G    15G         70%  /var/lib/docker

==================== INFORMACIÓN DEL DISCO ====================

Disco /dev/sda: 53.7 GB, 53687091200 bytes
255 cabezas, 63 sectores/pista, 6527 cilindros, total 104857600 sectores
Unidades = sectores de 1 * 512 = 512 bytes
Tamaño del sector (lógico/físico): 512 bytes / 4096 bytes
Tamaño de E/S (mínimo/óptimo): 4096 bytes / 4096 bytes
Identificador del disco: 0x00000000

   Dispositivo Arranque  Inicio       Fin        Bloques   Id  Sistema
/dev/sda1   *          16065   104856254    52420095   83  Linux
La partición 1 no comienza en el límite del sector físico.

==================== FIN DE LA INFORMACIÓN DEL DISCO ====================

He ejecutado top y observado los números de CPU y memoria, y no veo nada preocupante. He revisado los registros y no veo nada que me indique el problema.

¿Hay algún otro detalle que pueda proporcionar para ayudar a solucionar el problema? ¿Qué pasos debo seguir para rastrear esto?

Gracias,

Stephen

1 me gusta

It could be that Postgres needs a bit more memory. You’ve got plenty, so you might bump db_shared_buffers to 1024MB. You might also bump db_work_mem to 80MB.

Thank you for the suggestion. I made both of those changes in the yml file. Restarting the app didn’t seem to make a difference, so I ended up rebooting the server. Unfortunately I can still replicate the problem.

You need to rebuild or

cd /var/discourse
./launcher destroy app
./launcher start app

for the changes to take effect.

And, this might not be a silver bullet, but I have seen it help.

2 Me gusta

So far so good, we’ll monitor and see how this helps. Thank you!

2 Me gusta