Ein weiteres discourse Rätsel

Ich erhalte um 21:09 Uhr ET eine AWS CloudWatch-Benachrichtigung, zusammen mit einigen Freunden, die mir schreiben: „Hey, ist Discourse down?“

Ich kann mich nicht per SSH mit der AWS Lightsail-Instanz verbinden, und alle Metriken sind eingefroren/melden nichts.

Schließlich gebe ich auf und stoppe/starte die Lightsail-Instanz neu.
Der Dienst wurde wiederhergestellt.

Ich überprüfe die Protokolle nach der Wiederherstellung des Dienstes, um daraus zu lernen.

Ich betreibe Discourse als einzelne Instanz, daher verwirrt mich der Fehler um 21:05 Uhr bezüglich der Redis-Netzwerkverbindung.

Ich kann nicht herausfinden, was passiert ist, außer dass „etwas“ aus „irgendeinem Grund“ eingefroren/fehlgeschlagen ist.

Jeder, der mir das erklären oder ein paar Anhaltspunkte geben kann, wird geschätzt.

Vielen Dank!

Wie sind die Server-Spezifikationen? Klingt, als ob ihm die Ressourcen ausgehen? Wahrscheinlich die CPU. Läuft zu dieser Zeit vielleicht eine tägliche Aufgabe?

Es ist eine Lightsail-Instanz mit 1 vCPU, 1 GB RAM und 40 GB SSD.

Der Speicher ist zu etwa 60 % belegt, und wenn ich Bereinigungen durchführe, sinkt er ziemlich stark.

AWS zeigt an, dass mir die Burst-CPU-Guthaben ausgegangen sind, was nur seltsam ist, da die anderen Metriken dies nicht unterstützen.

Es ist eine ziemlich kleine Community (20-30 aktive Teilnehmer), daher wäre ich überrascht, wenn es eine wirkliche CPU- oder RAM-Beschränkung gäbe.

Es gibt keine tägliche Aufgabe, von der ich weiß, außer etwas, das Discourse möglicherweise standardmäßig plant.

1 GB mit Swap ist das absolute Minimum, um Discourse auszuführen.

Wie lange läuft diese Instanz schon? Wie groß ist die Datenbank?

3 „Gefällt mir“

Ich werde die DB-Größe überprüfen, erwarte nicht, dass sie groß ist (Backups sind alle etwa 57 MB).

Die Uptime der Instanz beträgt jetzt knapp zehn Stunden, da die Wiederherstellung einen Stopp und Neustart des virtuellen Servers erforderte – ich konnte keine Shell- oder Konsolenverbindung herstellen.

Läuft seit dem Bau dieser Instanz (geschätzt Februar 2021) problemlos auf diesem Instanztyp.

Das klingt nach dem, was passiert, wenn AWS Ihre VM von einem Host auf einen anderen verschiebt und sie dadurch in einem seltsamen Zustand hinterlässt. Normalerweise löst ein Neustart das Problem.

5 „Gefällt mir“

Die Gesamtgröße der Datenbank beträgt 423 MB.

Die größten Tabellen sind:
Posts 66 MB
Post_timings 60 MB

Ein zweiter ähnlicher „hoher Last“-Fehler ist aufgetreten.

Ich vermute Ressourcenkonflikte.

Hat jemand versucht, den Lightsail-Snapshot zu verwenden, um die Instanz zu sichern und sie als Upgrade-Methode auf eine größere Instanz wiederherzustellen?

Sie können versuchen, die AWS-Instanz neu zu starten. Das kann viele Probleme beheben.

Ich bin mit Lightsail-Snapshots von 1 CPU, 1 GB RAM, 40 GB SSD auf 2 CPU, 4 GB RAM, 80 GB SSD umgezogen.

Abgesehen davon, dass ich die öffentliche IP trennen und wieder anhängen musste, was einfach genug war, ist meine verbleibende Sorge: „Was habe ich übersehen“?

Gibt es etwas (Backups, E-Mail, S3-Bucket-Konfiguration usw.), das ich überprüfen sollte, oder muss ich irgendwelche anfänglichen Installationsparameter erneut ausführen, um die verbesserten Ressourcen zu nutzen?

Ich denke, basierend auf diesem Link könnte ich den db_shared_buffer auf mindestens 1 GB erhöhen.
Die aktuelle app.yml sagt 128 MB und zeigt auch an, dass er sich beim Start automatisch anpasst.

1 GB ist in Ordnung für ein 4-GB-System. Stellen Sie sicher, dass Sie auch unicorn_workers auf 4 aktualisieren.

Die übliche Empfehlung, wenn Sie zwischen Servern wechseln würden, wäre, discourse-setup erneut auszuführen, was sich automatisch um das oben Genannte kümmert.

1 „Gefällt mir“

Danke. Ich tauche jetzt in die Prometheus-Materie ein.

Gute Arbeit.