Spazio disco troppo pieno per aggiornare l'istanza Discourse

Ciao,

Ho una piccola istanza Discourse su un server con 25 GB di spazio. Al momento ne ha solo 3,4 GB liberi, e non sono sicuro del perché. Questo mi impedisce di eseguire gli aggiornamenti.

Non ci sono altri servizi in esecuzione su questa istanza oltre a Discourse, né ce ne sono mai stati.

Finora, per liberare spazio, ho:

  • eliminato tutti i log che sono riuscito a trovare, sia di Discourse che da /var/log/journal
  • eliminato tutti i backup di Discourse tranne uno
  • rimosso tutte le immagini Docker obsolete
  • eseguito apt-get autoclean e apt-get autoremove
  • verificato di non avere vecchi kernel

Ho pensato di spostare i dati di PostgreSQL su un disco esterno, ma al momento occupano meno di un GB, quindi non credo che questo aiuterà abbastanza.

/dev/vda1 sta utilizzando 20 GB di spazio.

C’è altro che posso fare? 25 GB non sono più una quantità ragionevole di spazio disco per eseguire Discourse?

Dipende principalmente dai tuoi upload, ma anche dai backup e da PostgreSQL se il tuo sito è molto grande (anche se sembra che non sia questo il problema). Quanto sono grandi i tuoi upload? La dashboard di amministrazione dovrebbe indicarlo in fondo.

È inferiore a 50 MB, quindi non si tratta affatto di un’istanza grande o vecchia. Come ho detto, ho pensato di spostarla dall’unità principale, ma non credo che questo sia il problema principale.

Se i tuoi upload sono di circa 25 MB e il tuo PostgreSQL è di circa 1 GB, sospetto che Discourse stia creando backup che non ti servono. Controlla le impostazioni di conservazione dei backup (Admin > Impostazioni > Backup) e dai un’occhiata ai tuoi backup attuali (Admin > Backup), eliminando quelli che non ti servono.

Ho eliminato l’ultimo backup rimasto dopo averlo copiato dal disco. Mi restano ancora solo 3,5 GB.

Sì, scusate, ho appena aggiornato il mio post con le istruzioni aggiornate.

Questo server non ha una directory /shared/.

Ecco cosa ho ottenuto da du -sh /var/discourse/*, solo 658M in totale:

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

I maggiori utilizzatori di spazio nel filesystem sono /var/lib/containerd/io.containerd.content.v1.content con 2,4 GB e /var/lib/containerd/io.containerd.snapshotter.v1.overlayfs con ben 12 GB

Mi dispiace, ho dimenticato di menzionare che devi essere all’interno del contenitore. Il file che hai menzionato proviene da Docker. Puoi verificare cosa lo sta utilizzando con docker system df ed eseguire un’eliminazione globale con docker system prune se necessario, assicurandoti solo che Discourse sia in esecuzione quando lo fai.

Ah, avrebbe senso.

Nel container, l’unica cosa che supera un GB è /var/www/discourse/vendor/bundle/ruby/ a 2,1 GB.

Aggiungo che se eseguo il pruning dell’immagine scaricata durante l’aggiornamento, ho abbastanza spazio, ma quando provo ad aggiornare e la scarica di nuovo, lo perdo. Quindi quasi 5 GB di spazio sono necessari per la nuova immagine.

Puoi mostrare l’output di quel comando Docker? Quella directory contiene tutti i gem di Ruby e quella dimensione non mi sembra allarmante.

Infatti, per favore mostra tutti i tuoi output. Non consiglio di cercare all’interno del container - il tuo problema è a livello di sistema, ed è lì che devi iniziare a cercare. E non guardare dove pensi ci possa essere un problema, ma guarda il quadro generale.

Prima di tutto, riavvia. Vuoi un filesystem pulito e un sistema fresco.

Poi, guarda questo thread precedente per consigli dettagliati:

[quote=“Ed_S, post:3, topic:404122”]
Per favore pubblica i dettagli di ciò che è successo
[/quote]}

Hai eseguito

./launcher cleanup

O altrimenti pulito Docker?

È difficile farne a meno con 25 GB, salvo nei forum più piccoli.

Il mio forum è piccolo (in realtà sono quasi solo io) e uso un VPS da 40 GB solo per stare tranquillo e non dover preoccuparmi che gli aggiornamenti mi causino mal di cuore.

È l’unico dei miei tre VPS che non utilizza 20 GB: gli altri sono un server HTTP con backend MySQL e PHP e un server RTMP. Quello che esegue Discourse esegue anche docker-mailserver, ma ho disattivato la digestione della posta e DMS ha un’impronta minima.

Questo probabilmente risolverà il tuo problema.

Per guadagnare un po’ di spazio, uso questi comandi, possono aiutare durante la ricostruzione

sudo apt -y autoremove && apt -y autoclean
sudo apt clean
sudo journalctl --vacuum-time=1s

1 e 2 puliscono Ubuntu
3 pulisce alcuni log, di solito libera circa 3 GB

Questo era presente nel post originale, ma è ovviamente meglio eseguire il comando Discourse

Grazie per le vostre risposte! Mi scuso per la scomparsa improvvisa: la vita mi ha travolto e ieri non ho avuto tempo di effettuare ulteriori controlli.

In sintesi, ho notato quanti thread ci siano su questo problema specifico e ho pensato che, anche se lo avessi risolto questa volta, sarebbe ricomparso, quindi ho trasferito la mia istanza su un server leggermente più grande con 35 GB di spazio disponibile.

Per chiunque stia cercando qui aiuto per questo stesso problema e non voglia effettuare un upgrade:

./launcher cleanup era qualcosa che avevo già provato, ma non ha liberato spazio sufficiente. Avevo già eseguito anche

sudo apt -y autoremove && apt -y autoclean
sudo apt clean
sudo journalctl --vacuum-time=1s

E, ancora una volta, non è stato sufficiente. C’erano molti log (per una macchina da 25 GB) in journalctl, quindi controllate assolutamente se vale lo stesso per voi, ma nel mio caso non ha aiutato abbastanza.