Por que os discos se fragmentam?

18

Como parte da manutenção regular do Windows, desfragmento meu disco rígido. Mas por que o disco rígido se fragmenta nos sistemas NTFS e FAT *? Aparentemente ext * não, por que isso? Também devo desfragmentar minhas unidades USB?

Simon Sheehan
fonte
Não desmonte os dispositivos de estado sólido. Nem mesmo no Windows da Microsoft. É ruim para o dispositivo de estado sólido e não é necessário.
Ctrl-alt-delor 31/03

Respostas:

22

Fragmentação não é o problema que havia 30 anos atrás. Naquela época, você tinha discos rígidos pouco mais rápidos que os disquetes e tamanhos de memória de processador minúsculos. Agora você tem unidades muito rápidas e grandes memórias do processador e, às vezes, um buffer substancial no disco rígido ou no controlador. Além disso, os tamanhos de setor ficaram maiores (ou os arquivos são alocados em blocos maiores), para que mais dados sejam inerentemente contíguos.

Os sistemas operacionais também se tornaram mais inteligentes. Enquanto o DOS 1.x buscava cada setor do disco conforme foi mencionado, um sistema operacional moderno pode ver que você tem um arquivo aberto para acesso seqüencial e pode prever razoavelmente que você estará buscando setores adicionais depois de consumir aqueles que você tem agora. Assim, ele pode "buscar previamente" os próximos vários setores.

Além disso, muitas vezes é melhor não ter um arquivo contíguo. Em um sistema (grande) em que o sistema de arquivos está espalhado por várias unidades, um arquivo pode ser acessado mais rapidamente se for "espalhado" também, pois vários discos podem estar procurando o arquivo simultaneamente.

Eu desfragmento a cada 2-3 anos, quer minha caixa precise ou não.

[Acrescentarei que o importante não é tanto se os dados no disco são desfragmentados quanto o espaço livre. O FAT foi terrível nisso - a menos que você desfragmentasse as coisas, cada vez piorando até que não houvesse dois blocos contíguos de espaço livre. A maioria dos outros esquemas pode unir o espaço livre e alocar peças de maneira um tanto "inteligente", para que a fragmentação atinja um certo limite e depois se estabilize, em vez de piorar cada vez mais.]

Daniel R Hicks
fonte
2
Não tenho desfragmentado um sistema desde 2005. Eu disse isso.
precisa saber é o seguinte
2
@BlueRaja, Se você fizer muitas operações de disco em um armazenamento rotacional, a desfragmentação ajuda. Recentemente, descobri que a execução de uma compilação do meu aplicativo (2 GB de código-fonte e ativos) é cerca de 20% mais rápida após a desfragmentação, e a caixa tinha aproximadamente 1 mês de idade.
Liori
2
Um post informativo e útil, mas não uma resposta à pergunta original. Estou surpreso ao ver isso aceito.
EMP
Nunca desfragmentei meu sistema. Agora tem cerca de 10 anos. Eu fiz uma varredura pela primeira vez, os níveis de fragmentação são muito baixos (2,3% não contíguos). Estou usando o sistema de arquivos ext4. Também nunca executei uma verificação de vírus; Nunca é um problema.
Ctrl-alt-delor 31/03
13

Todo fragmento de sistemas de arquivos. ext e outros sistemas de arquivos Linux se fragmentam menos devido à maneira como são projetados - para citar a Wikipedia sobre o Linux Network Administrator's Guide :

Os sistemas de arquivos modernos do Linux mantêm a fragmentação no mínimo, mantendo todos os blocos em um arquivo juntos, mesmo que não possam ser armazenados em setores consecutivos. Alguns sistemas de arquivos, como o ext3, alocam efetivamente o bloco livre mais próximo de outros blocos em um arquivo. Portanto, não é necessário se preocupar com a fragmentação em um sistema Linux.

Eu observaria que o ext4 possui desfragmentação online e, portanto, a fragmentação é um problema, mesmo nos sistemas de arquivos Linux.

Os sistemas de arquivos do Windows têm seus clusters colocados onde quer que haja espaço para colocá-los, e a desfragmentação é executada e substitui-os. No Linux, os arquivos são preferencialmente colocados onde há espaço suficiente.

No entanto, o Windows 7 agendou execuções de desfragmentação, portanto, não é realmente necessário executar a desfragmentação manualmente.

Journeyman Geek
fonte
Percebo que a desfragmentação agendada não foi ativada por padrão em nenhum dos meus computadores.
perfil completo de Simon Sheehan
5
ext* não desfragmenta à medida que avança. trac.transmissionbt.com/ticket/849 e h-online.com/open/features/… . ext*minimiza a fragmentação armazenando dados contíguos em locais aleatórios no disco. Compensações aleatórias espalham os arquivos contíguos pelo disco e reduzem a necessidade de fragmentar um arquivo.
ta.speot.is
Alguma palavra sobre como o Reiser / XFS evita a fragmentação? Eu sempre me perguntei sobre eles, mas eles parecem amplamente indocumentados em relação ao ext.
precisa saber é o seguinte
11
editado para corrigir minha resposta enquanto esses comentários foram feitos. Ext4 faz desfragmentação online do que eu posso dizer. ext 2/3 não.
Journeyman Geek
3
Por padrão no Windows 7, a desfragmentação está agendada para quarta-feira às 01:00. Se o seu computador nunca estiver ligado no momento, a desfragmentação pode nunca ocorrer. Pessoalmente, eu recomendo que você permita que a desfragmentação agendada semanalmente seja executada (ou desfragmentada semanalmente), porque não leva muito tempo e 100% garante que a fragmentação nunca se torne um problema.
Jcrawfordor #