Solução da comunidade

Utilize o ncdu no CasaOS para descobrir o que está a ocupar o armazenamento

A 2024 CasaOS tutorial introduced ncdu as a quick way to find large folders and mystery disk usage.

Utilize o ncdu no CasaOS quando precisar de descobrir quais as pastas que estão realmente a consumir espaço em disco, mas analise o caminho correto no anfitrião — não apenas um pequeno sistema de ficheiros de um contentor. Nos sistemas Linux atuais, o projeto a montante disponibiliza binários estáticos, e o ncdu 2.x é a forma mais rápida de analisar interativamente a utilização do disco.

O tutorial do BigBear de 2024 é útil como introdução, mas não precisa de um contentor especial da loja de aplicações para utilizar o ncdu. Para resolver problemas de armazenamento, um terminal do anfitrião ou um contentor com um destino explicitamente montado como só de leitura é mais transparente.

Para que serve o ncdu

O ncdu é um analisador interativo da utilização do disco. Analisa diretórios, ordena-os por tamanho e permite explorar pastas grandes sem encadear manualmente du comandos.

A atual página do projeto ncdu apresenta binários estáticos do ncdu 2.x para x86_64, ARM e AArch64.

Comece pelo sistema de ficheiros que está realmente cheio

Execute:

df -h

Identifique o ponto de montagem com pouco espaço livre. Em seguida, analise esse ponto de montagem em vez de executar o ncdu cegamente a partir de /.

Analise um caminho de dados do CasaOS

Exemplos típicos:

ncdu /DATA
ncdu /media
ncdu /var/lib/docker

O caminho exato depende da sua instalação. Se suspeitar que a origem é o Docker ou o AppData, inspecione diretamente essa localização.

Tenha cuidado ao analisar os componentes internos do Docker

/var/lib/docker contém camadas de imagens, camadas graváveis, registos e metadados. O ncdu pode mostrar quais os diretórios grandes, mas eliminar manualmente ficheiros aleatórios de overlay pode corromper o estado do Docker.

Utilize comandos de limpeza compatíveis com o Docker para imagens, contentores e caches, em vez de eliminar diretórios internos de camadas através do ncdu.

O ncdu em contentores tem limitações de visibilidade

Se executar o ncdu dentro de um contentor, este apenas verá os caminhos que montar nesse contentor. Uma análise da raiz do contentor diz-lhe muito pouco sobre a utilização total do disco pelo CasaOS.

Se preferir o Docker, monte o caminho de destino no anfitrião como só de leitura e analise esse ponto de montagem. Mantenha a eliminação desativada durante o diagnóstico.

Encontre primeiro as pastas AppData grandes

As aplicações auto-hospedadas podem acumular miniaturas, registos, caches, bases de dados e metadados transferidos. O guia de armazenamento do Docker explica por que motivo os dados AppData no anfitrião podem aumentar, mesmo quando as imagens dos contentores são pequenas.

Fontes comuns de ocupação de espaço

  • cache de transcodificação de multimédia;
  • registos JSON de contentores;
  • ficheiros de bases de dados;
  • miniaturas de fotografias e índices de aprendizagem automática;
  • pastas incompletas de clientes de transferências;
  • cópias de segurança antigas;
  • imagens Docker e cache de compilação.

Não elimine nada até saber quem é o proprietário da pasta

Utilize o ncdu para identificar o caminho grande e, em seguida, determine qual é a aplicação que o utiliza. Pare a aplicação relevante antes de eliminar dados que possam estar a ser escritos ativamente.

Utilize exclusões para tornar as análises grandes mais úteis

Num servidor com partilhas de rede montadas, cópias de segurança ou discos externos, analisar a árvore errada pode demorar muito tempo e misturar armazenamento não relacionado num único resultado. Comece no ponto de montagem exato indicado por df -h e evite atravessar pontos de montagem remotos, a menos que sejam o problema.

Para resolução repetida de problemas, o ncdu pode exportar os dados da análise, permitindo comparar o crescimento ao longo do tempo em vez de voltar a analisar um sistema de ficheiros enorme em cada sessão.

Compreender os ficheiros eliminados mas ainda abertos

Por vezes df indica que o sistema de ficheiros está cheio, mas o ncdu não consegue encontrar ficheiros visíveis suficientes para o explicar. Uma das causas pode ser um processo que mantém aberto um ficheiro já eliminado. A entrada do diretório desapareceu, mas os blocos continuam alocados até o processo fechar o ficheiro.

Quando o total do ncdu e o df não corresponderem significativamente, inspecione os ficheiros abertos eliminados com uma ferramenta como lsof +L1 se estiver disponível no anfitrião. Reiniciar o serviço responsável pode libertar o espaço depois de compreender o que o está a ocupar.

Utilize o ncdu como ferramenta de medição, não como política de limpeza

Uma cache grande pode ser segura de limpar, enquanto um diretório de base de dados com um tamanho semelhante pode ser crítico. O valor do ncdu está em mostrar para onde foi o espaço; a aplicação responsável deve determinar como esse espaço é recuperado.

Perguntas frequentes

O ncdu pode eliminar ficheiros?

Sim, mas elimine com cuidado. Para componentes internos do Docker, bases de dados e dados geridos por aplicações, prefira o próprio processo de limpeza da aplicação.

Porque é que o ncdu mostra menos espaço do que o df?

As possíveis razões incluem ficheiros eliminados mas ainda abertos, diretórios inacessíveis, metadados do sistema de ficheiros, instantâneos ou dados fora do ponto de montagem analisado.

Preciso do BigBearCasaOS para instalar o ncdu?

Não. É uma opção de empacotamento. O upstream atual também disponibiliza binários estáticos autónomos.

Onde devo começar a analisar?

Utilize df -h para identificar o ponto de montagem completo e, em seguida, analisar esse caminho exato com o ncdu.