Festplattenspeicher zu voll, um Discourse-Instanz zu aktualisieren

Hallo,

Ich habe eine kleine Discourse-Instanz auf einem Server mit 25 GB Speicherplatz. Derzeit sind nur noch 3,4 GB frei, und ich weiß nicht genau warum. Das verhindert, dass ich Updates durchführen kann.

Auf dieser Instanz läuft außer Discourse keine andere Software, und das war bisher auch nie der Fall.

Bisher habe ich Folgendes getan, um Speicherplatz zu freigeben:

  • Ich habe alle gefundenen Logs gelöscht, sowohl von Discourse als auch aus /var/log/journal
  • Ich habe alle Discourse-Backups gelöscht, außer einem einzigen
  • Ich habe alle alten Docker-Images bereinigt
  • Ich habe apt-get autoclean und apt-get autoremove ausgeführt
  • Ich habe sichergestellt, dass keine alten Kernel vorhanden sind

Ich hatte überlegt, meine PostgreSQL-Daten auf eine externe Festplatte zu verschieben, aber da sie derzeit weniger als ein GB groß sind, wird das wahrscheinlich nicht genug helfen.

/dev/vda1 belegt 20 GB Speicherplatz.

Gibt es noch etwas anderes, das ich tun kann? Ist 25 GB nicht mehr ein angemessener Speicherplatz, um Discourse zu betreiben?

Das hängt hauptsächlich von deinen Uploads ab, aber auch von Backups und PostgreSQL, falls deine Site sehr groß ist (was anscheinend nicht das Problem ist). Wie groß sind deine Uploads? Das sollte unten im Admin-Dashboard angezeigt werden.

Es ist weniger als 50 MB groß, das ist also überhaupt keine große oder alte Instanz. Wie ich bereits erwähnt habe, habe ich erwogen, sie von der Hauptfestplatte zu verschieben, aber ich glaube nicht, dass dies das Hauptproblem ist.

Wenn Ihre Uploads ~25 MB groß sind und Ihre PostgreSQL-Datenbank ~1 GB, würde ich vermuten, dass Discourse Backups erstellt, die Sie nicht benötigen. Prüfen Sie Ihre Einstellungen für die Aufbewahrung von Backups (Admin > Einstellungen > Backups) und sehen Sie sich Ihre aktuellen Backups an (Admin > Backups), und löschen Sie diejenigen, die Sie nicht brauchen.

Ich habe das letzte verbliebene Backup gelöscht, nachdem ich es von der Festplatte kopiert hatte. Mir sind immer noch nur 3,5 GB übrig.

Ja, entschuldigung, ich habe gerade meinen Beitrag mit aktualisierten Anweisungen aktualisiert.

Dieser Server verfügt nicht über ein /shared/-Verzeichnis.

Hier ist das Ergebnis von du -sh /var/discourse/*, insgesamt nur 658 MB:

4.0K    /var/discourse/LICENSE
12K     /var/discourse/README.md
4.0K    /var/discourse/bin
4.0K    /var/discourse/cids
8.0K    /var/discourse/containers
12K     /var/discourse/discourse-doctor
8.0K    /var/discourse/discourse-setup
368K    /var/discourse/image
8.0K    /var/discourse/install-discourse
28K     /var/discourse/launcher
32K     /var/discourse/samples
8.0K    /var/discourse/scripts
657M    /var/discourse/shared
180K    /var/discourse/templates

Die größten Speicherbelegungen im Dateisystem sind /var/lib/containerd/io.containerd.content.v1.content mit 2,4 GB und /var/lib/containerd/io.containerd.snapshotter.v1.overlayfs mit stolzen 12 GB.

Entschuldigung, ich habe vergessen zu erwähnen, dass du dich im Container befinden musst. Die von dir erwähnte Datei stammt von Docker. Du kannst mit docker system df prüfen, was sie belegt, und bei Bedarf mit docker system prune eine globale Bereinigung durchführen. Stelle dabei sicher, dass Discourse läuft.

Ah, das ergibt Sinn.

Im Container ist die einzige Datei, die größer als ein GB ist, /var/www/discourse/vendor/bundle/ruby/ mit 2,1 GB.

Ich werde hinzufügen, dass ich, wenn ich das Bild beschneide, das der Update-Prozess herunterlädt, genug Speicherplatz habe, aber wenn ich versuche, das Update durchzuführen und es erneut herunterlädt, verliere ich ihn. Also ist das neue Bild fast 5 GB groß.

Könntest du die Ausgabe dieses Docker-Befehls zeigen? Dieses Verzeichnis enthält alle Ruby-Gems, und diese Größe erscheint mir nicht alarmierend.

Tatsächlich, bitte zeigen Sie alle Ihre Ausgaben. Ich würde nicht empfehlen, in den Container hineinzuschauen – Ihr Problem liegt auf Systemebene, und dort sollten Sie anfangen zu suchen. Und schauen Sie nicht dort hin, wo Sie denken, dass ein Problem sein könnte, sondern betrachten Sie das Gesamtbild.

Starten Sie zunächst neu. Sie wollen ein sauberes Dateisystem und ein frisches System.

Als Nächstes, sehen Sie diesen vorherigen Thread für detaillierte Ratschläge:

Hast du

./launcher cleanup

ausgeführt oder Docker anderweitig bereinigt?

Mit 25 GB kommt man nur bei den kleinsten Foren aus.