quinta-feira, 7 de novembro de 2013

Tamanho ideal das unidades de alocação no Windows

Algumas contas interessantes. Como peguei um disco novo, um Seagate Slim de 500 GB resolvi fazer umas experiências. Já havia lido que o tamanho da "unidade de alocação de arquivos", parâmetro que vc deve indicar ao formatar um HD influenciam tanto na velocidade de acesso, quanto no número de arquivos que podem ser guardados no HD. Por vezes temos HDs muito "ocupados", mas não encontramos os arquivos enormes que os ocupam. Talvez, culpa de uma definição errada das unidades de alocação.
Considere o seguinte: entenda a unidade de alocação como uma caixa de papelão onde você só pode colocar um objeto. Quanto menor a caixa, menor será o objeto que cabe. Se a caixa for muito grande um objeto pequeno ficará sozinho lá dentro e o resto do espaço da caixa não será utilizado. Mas como tratamos de arquivos, cada arquivo será espalhado pelo número mínimo de caixas onde ele couber por inteiro, preenchendo 100% de cada uma, menos da última.
Antigamente, quando tínhamos arquivos muito pequenos, hds que hoje parecem piada, com 30 MB somente, era comum fixarmos as unidades de alocação no menor tamanho possível. Era ridículo um arquivo de texto de 1 kb ocupar uma unidade de alocação inteira de 16 kb. Perdia-se 15 kb. Hoje a maioria dos arquivos é enorme e as unidades de alocação não cresceram. Se você tem muitos arquivos pequenos, terá seu HD cheio de espaço vazio marcado como ocupado.
No sistema padrão do Windows, o NTFS há apenas cinco opções básicas e a maior é de 8 kb. A padrão é de 4 kb. Imagine então uma fotinho digital de 4 MB, que irá usar 1.000 unidades de alocação de 4 kb... No sistema exFAT (compatível com PC e MAC ao mesmo tempo, funciona nos dois sistemas) o tamanho máximo é de 32 kb.
Parece resolvido! Coloco no tamanho máximo e tudo será ótimo... Não, não, não! Eu li por aí que quanto MENOR forem as unidades de alocação, MAIS VELOZ será a velocidade de acesso. Ilógico, como diria o sr Spock, mas parcialmente verdadeiro.
Testei o disco da Seagate com as diversas formatações e o resultado foi surpreendente. Os testes foram feitos copiando uma pasta de fotos de mais de 3GB com 1.300 arquivos, do HD interno para o externo via USB 3.0.
Com NTFS:
unidade de alocação de 16 bytes (a mínima), a velocidade média foi de 68 MB/s
unidade de alocação de 128 bytes, a velocidade média foi de 70 MB/s
unidade de alocação de 4096 bytes (4 kb, a padrão do Windows 7/8), a velocidade média foi de 70 MB/s
unidade de alocação de 8192 bytes (8 kb, a máxima), a velocidade média foi de 60 MB/s
Com exFAT:
unidade de alocação de 32 Kbytes (a mínima), a velocidade média foi de 46 MB/s
unidade de alocação de 128 Kbytes, a velocidade média foi de 40 MB/s
unidade de alocação de 4096 bytes (4 kb, a padrão do Windows 7/8), a velocidade média foi de 45 MB/s
unidade de alocação de 32768 bytes (32 MB a máxima), a velocidade média foi de 30 MB/s
O resultado me surpreendeu. Vemos que no sistema de arquivos NTFS o tamanho da unidade de alocação tem influência na velocidade, mas entre a unidade mínima e a unidade padrão a variação é bem pequena. Já a unidade de tamanho máximo  teve uma redução considerável de velocidade da cópia.
O sistema exFAT me decepcionou. A funcionalidade de poder usar o mesmo HD externo num PC e num MAC tem um preço e é muito caro: a velocidade da gravação dos dados que variou de apenas uns 45% a 58% da velocidade com um gerenciamento NTFS.
A velocidade de gravação pode ainda variar de acordo com a região do HD onde os dados são gravados. Existe uma região rápida, onde teoricamente ficam gravados programas e arquivos de sistemas com prioridade, um região norma (a maior) e uma região lenta (a última a ser preenchida), motivo pelo qual um disco muito cheio fica mais lento, já que os arquivos que vc mais usa, são os últimos que vc gravou e eles foram para a área lenta. Não há como controlar isso. Outro fator: uma arquivo de 3 GB grava com uma velocidade muito maior que 1.000 arquivos de 3 MB.

Então leve em consideração o que é melhor para vc, tendo dados verdadeiros para auxiliar em sua decisão. Ainda assim 30 MB/s pela USB 3.0 é 10 vezes mais veloz do que vc consegue pela USB 1.0  mas a mesma velocidade da uma USB 2.0… A leitura de dados de um disco DVD em bom estado, gira entre 15 a 16 MB/s.