"Zufällige" 502-Fehler

Ich habe eine Discourse-Installation auf einem GCE-Server laufen. Benutzer haben Probleme gemeldet, bei denen das System zufällig 502-Fehler zurückgibt. Ich kann die Situation reproduzieren, indem ich durch die Links „Neueste", „Neu", „Ungelesen", „Top" und „Kategorien" klicke. Irgendwann wird einer dieser Links einen 502-Fehler zurückgeben.

Ich habe die Logs meines Proxy-Servers geprüft, und für die fehlgeschlagenen URLs werden Einträge wie dieser protokolliert:
„upstream prematurely closed connection while reading response header from upstream". Es gibt eine sehr große Anzahl dieser Fehler für scheinbar zufällige URLs.

Hier sind die Schritte, die ich unternommen habe, um das Problem zu lösen, basierend auf Beiträgen, die ich gesehen habe:

  • Betriebssystem aktualisiert
  • Docker aktualisiert
  • Discourse aktualisiert
  • Server neu gestartet

Die ursprüngliche Installation wurde mit dem Docker Cloud Setup Guide durchgeführt. Anschließend habe ich einem Guide gefolgt, um Backups und Images auf S3 umzustellen.

Mein Server läuft mit:
Ubuntu 14.04.6 LTS (GNU/Linux 4.4.0-148-generic x86_64)

Laut discourse-doctor:

DOCKER VERSION: Docker version 18.06.3-ce, build d7080c1

==================== MEMORY INFORMATION ====================
RAM (MB): 4820

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

==================== DISK SPACE CHECK ====================
---------- OS Disk Space ----------
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G   33G   15G  70% /
/dev/sda1        50G   33G   15G  70% /var/lib/docker

==================== DISK INFORMATION ====================

Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders, total 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *       16065   104856254    52420095   83  Linux
Partition 1 does not start on physical sector boundary.

==================== END DISK INFORMATION ====================

Ich habe top ausgeführt und die CPU- und Speicherauslastung beobachtet, aber nichts Bedenkliches festgestellt. Ich habe auch die Logs durchsucht und konnte nichts finden, was auf das Problem hinweist.

Kann ich noch weitere Details bereitstellen, um bei der Fehlersuche zu helfen? Welche Schritte sollte ich unternehmen, um dies zu beheben?

Vielen Dank,

Stephen

1 „Gefällt mir“

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 „Gefällt mir“

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

2 „Gefällt mir“