Erreurs 502 « aléatoires »

J’ai une installation Discourse fonctionnant sur un serveur GCE. Les utilisateurs ont signalé des problèmes avec le système renvoyant aléatoirement des erreurs 502. Je peux reproduire la situation en cliquant sur les liens « Latest », « New », « Unread », « Top » et « Categories ». À un moment ou à un autre, l’un d’eux renvoie une erreur 502.

J’ai vérifié les journaux de mon serveur proxy et ils enregistrent des entrées comme celle-ci pour les URL échouées :
« upstream prematurely closed connection while reading response header from upstream ». Il y a un très grand nombre de ces erreurs, pour des URL apparemment aléatoires.

Voici les étapes que j’ai suivies pour tenter de résoudre le problème, en me basant sur des publications que j’ai consultées :

  • Mise à niveau du système d’exploitation
  • Mise à niveau de Docker
  • Mise à niveau de Discourse
  • Redémarrage du serveur

L’installation initiale a été effectuée en suivant le guide Docker Cloud Setup. J’ai ensuite suivi un guide pour basculer les sauvegardes et les images vers S3.

Mon serveur exécute :
Ubuntu 14.04.6 LTS (GNU/Linux 4.4.0-148-generic x86_64)

Selon discourse-doctor :

     VERSION DE DOCKER : Docker version 18.06.3-ce, build d7080c1

==================== INFORMATIONS SUR LA MÉMOIRE ====================
RAM (Mo) : 4820

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

==================== VÉRIFICATION DE L'ESPACE DISQUE ====================
---------- Espace disque du système d'exploitation ----------
Système de fichiers      Taille  Utilisé  Disponible %Util. Monté sur
/dev/sda1        50G   33G   15G  70% /
/dev/sda1        50G   33G   15G  70% /var/lib/docker

==================== INFORMATIONS SUR LE DISQUE ====================

Disque /dev/sda : 53,7 Go, 53687091200 octets
255 têtes, 63 secteurs/piste, 6527 cylindres, total 104857600 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille du secteur (logique/physique) : 512 octets / 4096 octets
Taille E/S (minimale/optimale) : 4096 octets / 4096 octets
Identifiant du disque : 0x00000000

   Périphérique Boot      Début         Fin      Blocs   Id  Système
/dev/sda1   *       16065   104856254    52420095   83  Linux
La partition 1 ne commence pas sur une limite de secteur physique.

==================== FIN DES INFORMATIONS SUR LE DISQUE ====================

J’ai exécuté top et observé les chiffres du CPU et de la mémoire, sans rien voir de préoccupant. J’ai examiné les journaux et n’ai rien trouvé qui pointe vers le problème.

Y a-t-il d’autres détails que je peux fournir pour aider au dépannage ? Quelles étapes devrais-je entreprendre pour identifier la source du problème ?

Merci,

Stephen

1 « J'aime »

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 « J'aime »

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

2 « J'aime »