In den Fehlerprotokollen erhalte ich intermittierend folgende Fehler. Dadurch ist die Website für 15–30 Sekunden nicht erreichbar, bis sie wieder verfügbar ist.
Info-Fehlermeldung:
PG::ConnectionBad (FATAL: Das Datenbanksystem befindet sich im Wiederherstellungsmodus) /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/pg-1.2.3/lib/pg.rb:58:in `initialize’
Eine wirklich seltsame Sache, die mir beim Betrachten dieser Protokolle aufgefallen ist, ist, dass anscheinend nach dem Ordner unter /var/www/… gesucht wird, aber dieser Ordner existiert auf dem Server nicht. Sollte er existieren? Jede Hilfe wird geschätzt.
Wenn die Datenbank defekt ist, ist die Website zwangsläufig ebenfalls defekt. Sie müssen herausfinden, warum. Die häufigsten Gründe sind ein Mangel an RAM und Festplattenspeicher. Meine Vermutung ist RAM. Wie viel RAM haben Sie? Was gibt free -h aus?
Das ist der Pfad innerhalb des Containers. Wenn Sie ./launcher enter app ausführen, werden Sie ihn dort sehen.
Nun, du hast 646 MB verfügbar, und 4 GB sind in der Regel ausreichend, sodass ein Swap-Bereich normalerweise nicht empfohlen wird. Wie groß ist deine Datenbank? Wie viel Traffic hast du? Läuft auf dem Server noch etwas anderes außer Discourse?
Um die Größe zu ermitteln, habe ich Folgendes ausgeführt:
./launcher enter app
rails db
SELECT pg_size_pretty(pg_database_size(current_database()));
Die Ausgabe betrug 4650 MB (1 Zeile).
Was den Traffic betrifft:
Gestern hatten wir 1.200 Seitenaufrufe, in der letzten Woche 12.400. In der letzten Woche gab es etwa 160 Nutzer und rund 80 gleichzeitige Nutzer zu jedem beliebigen Zeitpunkt.
Du bist der Beste. Der 1 GB Swap hat anscheinend alle Absturzprobleme behoben. Ich bin ehrlich froh, dass es ein RAM-Problem und kein Datenbankproblem war. Ich werde am Wochenende die RAM-Menge auf dem Server erhöhen. Vielen Dank an alle, die in diesem Thread geholfen haben!
Ehrlich gesagt bin ich mir nicht sicher. Davor hatten wir nach einer Hardwareänderung vor einiger Zeit einen Neuaufbau und einen Server-Neustart durchgeführt. Ich gehe davon aus, dass nach einem Neustart alle Systemänderungen von Discourse erkannt worden wären.
Nach der Installation der Swap-Datei wurde zeitweise mehr als 4 GB „Speicher“ verwendet, sodass dies definitiv das Problem in unseren Spitzenzeiten war, was mit den Zeiträumen übereinstimmt, in denen der Server abgestürzt ist. Wir haben heute ein Upgrade durchgeführt, und die Seite läuft jetzt sehr gut.
Aber das ist nicht der Fall. Es gibt Einstellungen, die beispielsweise steuern, wie viel RAM die Datenbank nutzen darf, die in app.yml eingebettet sind. Sie können diese manuell bearbeiten oder discourse-setup erneut ausführen.