Espace disque trop plein pour mettre à jour l'instance Discourse

Bonjour,

J’héberge une petite instance Discourse sur un serveur disposant de 25 Go d’espace disque. Actuellement, il ne me reste que 3,4 Go libres, et je ne sais pas pourquoi. Cela m’empêche d’effectuer les mises à jour.

Aucun autre service ne tourne sur cette instance, et ce n’a jamais été le cas.

Jusqu’à présent, pour libérer de l’espace, j’ai :

  • supprimé tous les journaux que j’ai pu trouver, tant ceux de Discourse que ceux de /var/log/journal
  • supprimé tous mes sauvegardes Discourse sauf une
  • nettoyé toutes les anciennes images Docker
  • exécuté apt-get autoclean et apt-get autoremove
  • vérifié qu’aucun ancien noyau n’était présent

J’ai envisagé de déplacer mes données PostgreSQL sur un disque externe, mais elles ne font pas encore un Go, donc je ne pense pas que cela suffise à résoudre le problème.

/dev/vda1 utilise 20 Go d’espace.

Y a-t-il autre chose que je puisse faire ? 25 Go ne sont-ils plus suffisants pour faire tourner Discourse ?

Cela dépend principalement de vos téléchargements, mais aussi des sauvegardes et de PostgreSQL si votre site est très volumineux (ce qui ne semble pas être le problème ici). Quelle est la taille de vos téléchargements ? Le tableau de bord administrateur devrait l’indiquer en bas de page.

Cela fait moins de 50 Mo, ce n’est donc pas une instance volumineuse ou ancienne. Comme je l’ai mentionné, j’ai envisagé de la déplacer hors du disque principal, mais je ne pense pas que ce soit le problème majeur ici.

Si vos uploads font ~25 Mo et que votre Postgres fait ~1 Go, je suspecterais que Discourse effectue des sauvegardes dont vous n’avez pas besoin. Je vérifierais vos paramètres de rétention des sauvegardes (Admin > Paramètres > Sauvegardes) et regarderais vos sauvegardes actuelles (Admin > Sauvegardes) pour supprimer celles dont vous n’avez pas besoin.

J’ai supprimé la seule sauvegarde restante après l’avoir copiée hors du disque. Il ne me reste toujours que 3,5 Go.

Oui, désolé, je viens de mettre à jour mon message avec des instructions actualisées.

Ce serveur ne possède pas de répertoire /shared/.

Voici ce que j’ai obtenu avec du -sh /var/discourse/*, soit 658 Mo au total :

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

Les plus gros consommateurs d’espace sur le système de fichiers sont /var/lib/containerd/io.containerd.content.v1.content avec 2,4 Go et /var/lib/containerd/io.containerd.snapshotter.v1.overlayfs avec pas moins de 12 Go.

Désolé, j’ai oublié de préciser que vous deviez être à l’intérieur du conteneur. Le fichier que vous avez mentionné provient de Docker. Vous pouvez vérifier ce qui l’utilise avec docker system df et effectuer un nettoyage global avec docker system prune si nécessaire, en vous assurant simplement que Discourse est en cours d’exécution lorsque vous le faites.

Ah, ça a du sens.

Dans le conteneur, la seule chose qui dépasse 1 Go est /var/www/discourse/vendor/bundle/ruby/ avec 2,1 Go.

Je précise que si je nettoie l’image avant la mise à jour, j’ai assez d’espace, mais quand j’essaie de mettre à jour et qu’elle est à nouveau téléchargée, je me retrouve à court. Donc l’image mise à jour occupe presque 5 Go.

Pouvez-vous afficher la sortie de cette commande Docker ? Ce répertoire contient tous les gems Ruby, et cette taille ne me semble pas alarmante.