Como posso visualizar o espaço no disco rígido com milhões de arquivos?

18

Temos um disco rígido de 600 Gigs e quase cheio. Ele foi preenchido com 18.501.765 arquivos (principalmente imagens pequenas de 19k) e 7.142.132 pastas. É muito difícil descobrir para onde foi exatamente todo o espaço. Nossos procedimentos regulares de limpeza não estão liberando espaço suficiente, o que significa que precisamos examinar esta unidade como um todo e determinar o que existe e o que pode ser movido ou removido. Tentamos vários aplicativos e até agora eles explodiram ou simplesmente foram executados por uma quantidade incrível de tempo para serem concluídos.

informação do servidor

  • Sistema operacional: Windows Server 2003
  • Sistema de arquivos: NTFS

Solução

O Space ObServer conseguiu ler 18.501.765 arquivos e 7.142.132 pastas sem ocupar quase nenhuma memória. Tenho certeza de que isso se deve principalmente ao fato de que ele usa um back-end SQL para armazenar todos os dados. Infelizmente, o mais caro de todos os produtos custa US $ 259,95 por servidor.

Tentativas de soluções

Durante minha pesquisa, tentei várias soluções diferentes, pagas e gratuitas. Eu mantive uma lista dos produtos que tentei abaixo para obter informações de todos.

Software grátis

Pay Software

Atualizações

Atualização 1 : o servidor que estou tentando analisar possui 2 GB de RAM e a maioria dos produtos que tento parece tentar manter as informações de arquivo / pasta na memória. Isso tende a acabar muito rapidamente com 18.501.765 arquivos e 7.142.132 pastas.

Atualização # 2 : Parece que os desenvolvedores do WinDirStat se envolveram o suficiente para nos dizer que ele pode compilar em 64 bits. Isso dá mais memória para trabalhar, mas não tenho certeza se será suficiente, a menos que eles possam persistir no disco.

Nathan Palmer
fonte
Qual sistema operacional?
Wesley
É o Windows Server 2003. Editei a postagem para mostrar isso agora.
Nathan Palmer
algum desses é totalmente gratuito, shareware ou código aberto?
Maslow
É muito gentil da sua parte nos atualizar dessa maneira sobre o que falhou, está em execução e está pendente. Me dá boas idéias.
Wesley
2
Sem problemas. Achei que seria uma boa informação, pois sinto que estamos lidando com um número de arquivos com os quais as empresas geralmente não trabalham diariamente. Além disso, acabei de atualizar com as categorias Free and Pay.
Nathan Palmer

Respostas:

6

Supondo que seu sistema operacional seja o Windows ...

De qualquer forma, você pode dividir milhões de arquivos sempre que levar muito tempo e será restringido pela E / S do próprio disco. Eu recomendo o TreeSize Professional . Ou talvez SpaceObServer . Você também pode experimentar a versão gratuita do TreeSize.

Wesley
fonte
Concordo. Mas esses dois produtos que eu não tentei, então vou dar uma olhada.
Nathan Palmer
5

Definitivamente tente o WinDirStat : fornece uma visualização fantástica do uso do disco, representando cada arquivo como um retângulo desenhado em escala, codificado por cores pelo tipo de arquivo. Clique em qualquer item na visualização e você o verá na árvore de diretórios.

A compilação padrão de 32 bits é limitada a 10 milhões de arquivos e o uso de 2 GB de RAM, mas o código-fonte será compilado com êxito como um aplicativo de 64 bits. O fato de o servidor em questão ter apenas 2 GB de RAM pode ser problemático nesse caso específico, mas a maioria dos servidores com um número tão grande de arquivos terá muito mais RAM.

Edição 1: Lamento ter descoberto que, quando testado em um volume de 4 TB contendo milhões de arquivos, o WinDirStat Portable travou após indexar cerca de 6,5 milhões de arquivos. Pode não funcionar para a pergunta original se a unidade contiver mais de 6 milhões de arquivos.

Edição nº 2: a versão completa do WinDirStat falha com 10 milhões de arquivos e 1,9 GB usados

Edição nº 3: entrei em contato com os desenvolvedores do WinDirStat e: (1) eles concordam que isso foi causado por limitações de uso de memória da arquitetura x86 e (2) mencionaram que ele pode ser compilado como 64 bits sem erros. Mais cedo.

Edição nº 4: O teste de uma compilação de 64 bits do WinDirStat foi bem-sucedido. Em 44 minutos, ele indexou 11,4 milhões de arquivos e consumiu 2,7 GB de RAM.

Falcão do céu
fonte
Pode valer a pena tentar a versão regular, pois é possível que o ambiente portátil tenha criado uma restrição inesperada. Não estou em posição de testar isso sozinho. windirstat.info
John Gardeniers
Na verdade, a versão regular morre com mais de 10 milhões de arquivos e com uso de 1,9 GB de RAM. Suspeito que não consiga alocar> 2 GB. Estou surpreso que ele usa tanta RAM (quase 200 bytes por arquivo registrado), mas, novamente, eu cresci em uma época em que bytes individuais eram muito mais preciosos do que são hoje ...
Skyhawk
Eu uso muito o WinDirStat. Infelizmente, ele simplesmente não funciona quando você entra em um grande número de arquivos.
Nathan Palmer
Eu ficaria interessado em saber se os desenvolvedores do WinDirStat retornam com alguma coisa. A RAM será uma restrição para mim em 32 ou 64 bits.
Nathan Palmer
11
Não existe uma versão oficial, mas posso enviar uma versão não oficial - obviamente, seria complicado criar a sua própria se você não tiver o Visual Studio! ([email protected] me alcança)
Skyhawk
4

Eu uso regularmente o FolderSizes em várias unidades de 1 TB com vários milhões de arquivos sem problemas.

joeqwerty
fonte
Impressionante. Não sabia sobre isso.
28410 Wesley
Ótimo. Vou dar uma chance.
Nathan Palmer
3

+1 nos produtos TreeSize, mas ...

Sua frase sobre "não limpar espaço suficiente" me faz pensar: você poderia ficar sem espaço reservado para NTFS MFT? Se o sistema de arquivos pegar mais espaço da MFT do que o inicialmente alocado, ele não retornará ao espaço de arquivo normal e não será mostrado nas operações de desfragmentação.

http://support.microsoft.com/kb/174619

"Os volumes com um número pequeno de arquivos relativamente grandes esgotam o espaço não reservado primeiro, enquanto os volumes com um número grande de arquivos relativamente pequenos esgotam o espaço da zona da MFT primeiro. Em ambos os casos, a fragmentação da MFT começa a ocorrer quando uma região ou região Se o espaço não reservado ficar cheio, o espaço para arquivos e diretórios do usuário começará a ser alocado a partir da zona MFT competindo com a MFT pela alocação. Se a zona MFT ficar cheia, o espaço para novas entradas MFT será alocado no restante disco, competindo novamente com outros arquivos ".

AndyN
fonte
Parece algo bom para verificar. Infelizmente, não podemos ver o tamanho da MFT porque a desfragmentação não será analisada sem um CHKDSK e o CHKDSK está atualmente falhando com "Ocorreu um erro não especificado".
Nathan Palmer
3
  1. cd \
  2. dir / s> out.txt
  3. poof! Magia acontece; ou um hacker perl aparece
  4. Resultados!

Seriamente. Eu fiz isso com 5 ou 6 milhões de arquivos; não sei exatamente o que você está procurando, mas uma boa linguagem de script vai consumir isso.

SqlACID
fonte
Então ... o que acontece na etapa 3 ... supondo que um hacker perl não apareça?
Nathan Palmer
Você pode postar mais informações sobre o que precisa? Maiores arquivos? Maiores diretórios? Você precisa de informações de data / hora? É uma necessidade única ou recorrente?
SqlACID
Por enquanto é uma vez. Preciso saber quais diretórios são os maiores (dir + filhos), mas precisarei inserir alguns diretórios antes que essas informações sejam válidas. Em seguida, precisarei ter um detalhamento dos arquivos por data para que eu possa visualizar os arquivos antigos e os recentes.
Nathan Palmer
3

Normalmente, não sou usuário de Windows, mas estou ciente da existência de Cygwin. :-)

Se funcionar suficientemente bem, algo como

du -m /your/path | sort -nr | head -n 50

ou talvez em Cygwin

du C:\ | sort -nr | head -n 50

De qualquer forma, você deve imprimir 50 diretórios maiores (tamanhos em megabytes).

Janne Pikkarainen
fonte
2

Eu encontrei alguns problemas com o Spacemonger e, ao procurar um utilitário, eu poderia facilmente transferir ou executar a partir de um dispositivo USB - o Space Sniffer mostrou-se muito versátil nesse aspecto e lidou com volumes de vários terabytes com facilidade.


fonte
volumes com vários terabytes com quantos arquivos? Parece que nosso principal problema não é quanto espaço é usado, mas quantos arquivos o programa pode manipular. A maioria está sufocando em 10 milhões.
Nathan Palmer
Como não tenho um servidor com mais de alguns milhões de arquivos disponíveis, não pude responder com segurança à sua pergunta de 10 milhões de arquivos - minha única sugestão seria que, com essas ferramentas, você possa definir a profundidade do diretório em que é visualizada - encontre o meio feliz e, em seguida, vá fundo na pasta que você precisa, além de economizar tempo fazendo a visualização.
1

du -s pode ser usado rapidamente e durará o tempo necessário.

Ignacio Vazquez-Abrams
fonte
Obrigado. Vou verificar isso na próxima vez que estiver em um sistema * ix.
Nathan Palmer
... Hã? gnuwin32.sourceforge.net/packages/coreutils.htm #
Ignacio Vazquez-Abrams
Não sabia que estava disponível no Windows. Vou dar uma olhada. Obrigado.
Nathan Palmer
1

Dê uma olhada no GetFoldersize

user9517 suporta GoFundMonica
fonte
0

Em relação à tabela mft, pareço lembrar que jkdefrag, a versão original de código-fonte aberto, deu uma visão muito precisa do disco, incluindo cores diferentes para as áreas mft. Eu acho que eu usei isso uma vez antes para uma regra geral de estimativa do tamanho e fragmentação do mft.

Também não se importa com o chdsk.

Pode tentar isso?

deploymonkey
fonte
Eu experimentei. Quando executo a análise, ela sofre o mesmo destino que a maioria desses outros programas. Muitos arquivos / pastas armazenados na memória.
Nathan Palmer
Desculpe ler isso. Parece um problema de plataforma. Tenho outra sugestão: espelhe o disco (imagem de bit, imagem macia ou espelho de hardware), não importa como, quebre o espelho e coloque a cópia em forense em outra plataforma, por exemplo. linux / nix. Isso consumiu tempo suficiente para garantir o custo de uma unidade de espelho referente à quantidade de seu tempo de trabalho investido.
Deploymonkey
0

Eu usei o Disk Usage Analyzer - Baobab no Linux usando sua função de verificação remota no servidor Windows. Eu não sei o que são seus limites embora.

O LiveCD do Fedora contém Baobab. Inicialize-o em qualquer computador na sua LAN.

É tudo grátis - como na cerveja e na fala. Também para uso comercial.

Tometzky
fonte