Espaço em disco insuficiente para atualizar a instância do Discourse

Olá,

Tenho uma pequena instância do Discourse em um servidor com 25 GB de espaço. No momento, só tem 3,4 GB livres, e não tenho certeza do motivo. Isso está me impedindo de executar atualizações.

Não há outros serviços rodando nesta instância além do Discourse, nem houve em algum momento.

Até agora, para liberar espaço, fiz o seguinte:

  • excluí todos os logs que consegui encontrar, tanto do Discourse quanto de /var/log/journal
  • excluí todas as minhas backups do Discourse, exceto uma
  • removi todas as imagens antigas do Docker
  • executei apt-get autoclean e apt-get autoremove
  • verifiquei que não havia kernels antigos

Pensei em mover os dados do PostgreSQL para um disco externo, mas eles ocupam menos de 1 GB no momento, então acho que isso não ajudaria o suficiente.

O /dev/vda1 está usando 20 GB de espaço.

Há mais alguma coisa que eu possa fazer? 25 GB já não é uma quantidade razoável de espaço em disco para rodar o Discourse?

Depende principalmente dos seus uploads, mas também dos backups e do PostgreSQL, caso seu site seja muito grande (o que parece não ser o problema). Qual é o tamanho dos seus uploads? O painel de administração deve indicar isso na parte inferior.

É menor que 50 MB, esta não é uma instância grande ou antiga. Como mencionei, considerei movê-la para fora da unidade principal, mas não acho que esse seja o problema principal aqui.

Se seus uploads são de ~25 MB e seu PostgreSQL é de ~1 GB, suspeito que o Discourse esteja fazendo backups que você não precisa. Eu verificaria suas configurações de retenção de backup (Admin > Configurações > Backups) e observaria seus backups atuais (Admin > Backups) e excluiria qualquer um que você não precise.

Excluí o único backup que restava depois de copiá-lo do disco. Ainda tenho apenas 3,5 GB livres.

Sim, desculpe, acabei de atualizar minha publicação com as instruções atualizadas.

Este servidor não possui um diretório /shared/.

Aqui está o que obtive com du -sh /var/discourse/*, apenas 658M no 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

Os maiores usos de espaço no sistema de arquivos são /var/lib/containerd/io.containerd.content.v1.content com 2,4 GB e /var/lib/containerd/io.containerd.snapshotter.v1.overlayfs com impressionantes 12 GB

Desculpe, esqueci de mencionar que você precisa estar dentro do container. O arquivo que você mencionou é do Docker. Você pode verificar o que está sendo usado com docker system df e fazer uma limpeza global com docker system prune, se necessário, apenas certifique-se de que o Discourse esteja em execução quando fizer isso.

Ah, isso faria sentido.

No container, a única coisa maior que 1 GB é /var/www/discourse/vendor/bundle/ruby/, com 2,1 GB.

Vou acrescentar que, se eu limpar a imagem que o update baixa, tenho espaço suficiente, mas quando tento atualizar e ela baixa novamente, perco esse espaço. Então, a nova imagem ocupa quase 5 GB.

Você consegue mostrar a saída desse comando do Docker? Esse diretório contém todas as gems do Ruby, e esse tamanho não me parece alarmante.

De fato, por favor, mostre todas as suas saídas. Não recomendo olhar por dentro do container - o seu problema está no nível do sistema, e é aí que você deve começar a procurar. E não olhe onde você acha que pode haver um problema, mas olhe o quadro geral.

Primeiro, reinicie. Você quer um sistema de arquivos limpo e um sistema novo.

Em seguida, veja este tópico anterior para conselhos detalhados:

[quote=“Ed_S, post:3, topic:404122”]
Por favor, poste detalhes do que aconteceu
[/quote]}

Você executou o

./launcher cleanup

Ou, de outra forma, limpou o Docker?

É difícil sobreviver com apenas 25 GB, exceto nos fóruns menores.

Meu fórum é pequeno (na verdade, sou basicamente só eu) e uso um VPS com 40 GB apenas para ter segurança e não precisar me preocupar com atualizações causando dor de cabeça.

É o único dos meus três VPSs que não usa 20 GB — os outros são um servidor HTTP com backend MySQL e PHP e um servidor RTMP. Aquele que roda o Discourse também roda o docker-mailserver, mas tenho o digest de e-mails desativado e o DMS tem uma pegada mínima.

Isso provavelmente resolverá seu problema.

Para ganhar um pouco de espaço, uso estes comandos, pode ajudar no processo de reconstrução

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

1 e 2 limpam o Ubuntu
3 limpa alguns logs, geralmente limpa cerca de 3 GB

Isso estava no OP, mas é obviamente melhor executar o comando do Discourse

Obrigado pelas respostas! Desculpe sumir, a vida aconteceu e eu não tive tempo ontem para fazer mais troubleshooting.

O resumo é que notei quantos tópicos existem sobre esse problema exato e pensei que, mesmo que eu o resolvesse dessa vez, ele voltaria a aparecer, então mudei minha instância para um servidor um pouco maior com 35 GB de espaço.

Para quem estiver procurando aqui por ajuda com esse problema exato e não quiser fazer upgrade:

./launcher cleanup foi algo que eu já havia tentado, não liberou espaço suficiente. Eu também já havia feito

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

E, novamente, não foi o suficiente. Havia muitos logs (para uma máquina de 25 GB) no journalctl, então verifique definitivamente se isso se aplica ao seu caso, mas para mim não ajudou o suficiente.