Por que a desfragmentação da unidade C aumentou meu espaço livre em disco em 10 GB?

26

Eu usei o Defraggler para desfragmentar o espaço livre na minha unidade C: \ de 100 GB, que tinha 85 GB. Após a desfragmentação, a unidade mostrou apenas 75 GB completos. Como 10 GB de espaço livre apareceram magicamente? Eu perdi algum dado?

Eu fiz uma limpeza de disco antes de desfragmentar e minha lixeira tinha apenas 11 MB, então não pode ser por causa da limpeza dos arquivos temporários. Observe que eu desfragmentei "espaço livre", o que significa que ele deveria ter reorganizado os blocos vazios para serem contíguos.

    
por goweon 07.07.2011 / 21:35

2 respostas

14

O que provavelmente aconteceu é que a operação de desfragmentação forçou o Windows a descartar alguns instantâneos de restauração do sistema. Seria um caso patológico de fragmentação para fazer com que a sobrecarga de metadados ocupasse 10% do seu espaço em disco além do que o Windows normalmente usa. mesmo assim, não tenho certeza se é possível.

Não vejo nada no histórico de versões do Defraggler ou na documentação que indique que ele é capaz de desfragmentar corretamente os arquivos para impedir a eliminação de cópias de sombra. Na verdade, este tópico do fórum de suporte do Defraggler indica que eles sabem que está acontecendo (há um post de um admin placa rotulado "Oficial Piriform Bug Fixer" no segmento), mas não indicam se ou não eles estão indo para consertá-lo.

Cópias de sombra podem ser perdidas quando você desfragmenta um volume : A razão pela qual isso acontece é que, por padrão, o VSS opera com Clusters de 16 KB por padrão, enquanto a maioria dos volumes NTFS são formatados com clusters de 4 KB. Portanto, se uma operação de desfragmentação estiver movendo dados que não sejam múltiplos de um cluster de 16 KB (ou a "distância" movida não é um múltiplo de 16 KB), o VSS a acompanhará como uma alteração e poderá limpar todos os seus instantâneos.

MSDN: Desfragmentando arquivos :

When possible, move data in blocks aligned relative to each other in 16-kilobyte (KB) increments. This reduces copy-on-write overhead when shadow copies are enabled, because shadow copy space is increased and performance is reduced when the following conditions occur:

  • The move request block size is less than or equal to 16 KB.
  • The move delta is not in increments of 16 KB.

A desfragmentação interna do Vista não faz isso :

One change that’s not obvious to users is our shadow copy optimization during defragmentation. Defrag has special heuristics to move file blocks in a way that will minimize the copy-on-write activity and shadow copy storage area consumption. Without this optimization, the defragmentation process would accelerate the deletion of older shadow copies.

    
por 07.07.2011 / 23:20
23

Cada fragmento deve ser rastreado em algum lugar. Isso leva espaço de armazenamento (dentro do encanamento do sistema de arquivos, não é algo que você deve acessar diretamente).

Um exemplo: suponha que você tenha um único arquivo com 1000 fragmentos. Assim, seu arquivo é armazenado através de uma coleção de blocos aleatórios. Em vez de em um único bloco contínuo. Isso significa que o arquivo fragmentado requer 1000x mais espaço de armazenamento dentro do encanamento do sistema de arquivos, se apenas para armazenar endereços para cada fragmento. O encanamento do sistema de arquivos mantém poucos dicionários / bancos de dados / maps / tables / list na localização de cada fragmento do arquivo. Portanto, para o encanamento do sistema de arquivos, armazenar uma lista de um único ponteiro de fragmento não precisa de muito espaço, em comparação com uma lista de 1000 ponteiros de fragmentos.

Mas ei, talvez eu esteja errado ...

Editar: Informações de suporte aqui :

When a non-resident data stream is too much fragmented, so that its effective allocation map cannot fit entirely within the MFT record, the allocation map may be also stored as an non-resident stream, with just a small resident stream containing the indirect allocation map to the effective non-resident allocation map of the non-resident data stream.

Tradução: se você tiver muita fragmentação, as suposições gerais do caso do sistema de arquivos não se aplicarão. Como tal, o FS deve tomar medidas para acomodar a fragmentação e acabar custando espaço de armazenamento extra, apenas para gerenciar os fragmentos. Exatamente meu palpite desde o primeiro lugar.

Editar: Dado o acima, ainda parece que 10GB está sendo perdido apenas para a fragmentação do arquivo é uma loucura. Eu estou apostando que enquanto desfragmentava, você tinha alguma corrupção comum no sistema de arquivos que foi corrigida automaticamente. Eu estou pensando não só você tem fragmentação massiva, mas também parcialmente arquivos apagados ocupando espaço de armazenamento. Teria sido bom ver um log de scandisk a partir dessa desfragmentação (ou uma série de scandisk antes da desfragmentação)

    
por 07.07.2011 / 21:40