Rain WikiWindows · Linux · Android

Inodes e 'No space left on device'

Conceitoext4 e sistemas de arquivos semelhantes

Um inode é a estrutura de dados que um sistema de arquivos estilo Unix usa para armazenar informações sobre um arquivo, como seu proprietário, permissões, tamanho e onde seus dados residem. Cada arquivo usa um inode, e muitos sistemas de arquivos possuem um número fixo, portanto, milhões de arquivos minúsculos podem causar 'No space left on device' enquanto o df -h ainda mostra espaço livre.

1Como visualizar

df -i lista o total de inodes, bem como a quantidade de inodes usados e livres por sistema de arquivos. ls -i mostra o número do inode de um arquivo, e stat <file> mostra os detalhes do seu inode.

2Causas típicas

Diretórios de sessão ou cache de aplicações web, filas de e-mail, arquivos de log pequenos não rotacionados e caches de compilação podem criar milhões de arquivos.

3Encontrando o diretório

O GNU du pode contar inodes: du --inodes -x / | sort -n | tail lista os diretórios com o maior número de entradas.

Como corrigir o esgotamento de inodes

  1. Confirme: df -i (IUse% próximo de 100%).
  2. Encontre o diretório: sudo du --inodes -x --max-depth=3 / | sort -n | tail -20
  3. Verifique o que cria os arquivos antes de excluir qualquer coisa.
  4. Remova arquivos antigos dessa aplicação com sua própria ferramenta, ou com find, por exemplo: find /path -type f -mtime +7 -delete após uma execução de teste sem o -delete.

Cuidados

  • Sempre execute o find sem -delete primeiro e leia a lista.
  • A contagem de inodes do ext4 é fixada quando o sistema de arquivos é criado.

Fontes

  1. inode(7) man7.org
  2. df(1) man7.org
  3. du(1) man7.org
  4. find(1) man7.org

Última revisão: