Desfragmentador do Windows 8?


16

Parece que o defragcomando do Windows 8 tem algumas novas opções, incluindo:

/K Execute a consolidação da laje nos volumes especificados.

Alguém sabe o que isso significa em inglês?

Respostas:


6

Este PDF parece ter uma explicação disso, junto com os novos recursos NTFS.

Diz:

  • Consolidação de placas

    • Desfragmenta arquivos com eficiência para minimizar o número de lajes alocadas

    • Uma laje é a unidade de alocação em um volume provisionado fino

    • Requer suporte para IOCTL_STORAGE_QUERY_PROPERTYsolicitar um ID de propriedade de:StorageDeviceLBProvisioningProperty

      • Recupera o tamanho da laje de um volume

3

Não consegui encontrar nada que explique especificamente o que isso significa no contexto do desfragmentador do Windows 8. Mas "consolidação de laje" geralmente se refere a objetos em movimento, para que objetos arredondados para o mesmo tamanho de alocação sejam colocados juntos.

O benefício de fazer isso é geralmente bastante mínimo. Mas tende a reduzir o tempo médio de busca quando um grande número de objetos pequenos é acessado.


0

Na verdade, não acho que sejam feitas lajes para ajustar a alocação de muitos arquivos com o mesmo tamanho para reduzir o tempo médio de busca.

Minha opinião é que ele é usado para reduzir a latência de alocações em grandes volumes que, de outra forma, causariam muitos acessos simultâneos por threads paralelos quando precisarem alocar espaço no volume, porque isso traria um bloqueio na mesma parte da alocação de volume bitmap. Para evitar o processamento de bitmaps grandes, ele pode ser subdividido em "lajes" cujo tamanho em bits representa áreas contíguas no disco usando o mesmo fragmento de bitmap (ocupando pelo menos 1 ou mais cluster; se o tamanho do cluster for 4KB, seu cluster no bitmap representa 4K * 8 = 32K clusters alocáveis, ou seja, 128 MB de armazenamento; o tamanho real da laje em um volume é ajustado entre 33 e 64, permitindo que cerca de 33 threads simultâneos aloquem espaço no bitmap no dist sem bloquear um ao outro)

Portanto, as lajes são usadas para acelerar a alocação de espaço no volume, assumindo que um encadeamento que cria muitos arquivos faça isso com mais freqüência dentro de sua própria laje, antes de desbloqueá-lo e tentar outra laje, ou tentando alocar quantidades menores na laje atual, antes de tentar outra laje não bloqueada disponível e, em seguida, tentar obter simultaneamente um acesso inchado à laje usada atualmente por outro encadeamento.

Isso explica por que a alocação no disco é "espalhada" pelo volume. Isso também explica por que a MFT no NTFS possui pelo menos 2 fragmentos, pertencentes a outras lajes, pois evita bloqueios severos entre muitos threads usando o volume. Você pode desfragmentar a MFT, mas ela permanecerá pelo menos um fragmento mantido em sua "área reservada" para alocações simultâneas, que devem evitar a execução de E / S de bloqueio no volume NTFS).

No passado, o volume NTFS não era subdividido em várias lajes, e havia uma enorme penalidade de desempenho com muitos bloqueios de threads e muitas opções de threads no kernel aguardando a conclusão da E / S (mesmo que a alocação no bitmap seja de fato extremamente rápido e leva nanossegundos, pois a maior parte da parte interessante do bitmap é armazenada em cache na memória). Quando as gravações nos volumes são liberadas e registradas no diário, ocorre outro bloqueio devido à alocação no diário; portanto, o diário agora também usa uma laje separada no volume (se possível).

Mas não acho que o NTFS dedique qualquer laje a arquivos para tamanhos específicos. O NTFS internamente desfragmentará levemente as lajes quando os dados forem removidos e seu tamanho alocado cair abaixo de algum limite e duas dessas lajes podem ser mescladas.

Você pode obter informações sobre tamanhos de lajes com:

fsutil fsinfo ntfsinfo c:

Claramente, as lajes são parâmetros de ajuste destinados ao desempenho. Mas muitas ferramentas de desfragmentação de terceiros ignoram essa configuração e não usam o posicionamento ideal. Idealmente, você deve ter algum espaço livre em cada barra do volume, a menos que as barras estejam cheias de arquivos e índices que não são realocados e devem permanecer estáveis. Para muitos arquivos e transações temporários pequenos, que são constantemente criados e reciclados, você precisa colocá-los em lajes suficientes, dependendo do número de encadeamentos simultâneos, e evitar colocá-los muito longe dos outros clusters que precisam ser lidos se o volume for um disco rígido ou matriz RAID (isso não importa no SSD).

As lajes também podem ser úteis para sistemas de arquivos remotos, mas seu tamanho ideal é difícil de prever. As lajes do lado oposto são muito pequenas para volumes diferenciais de volumes virtualizados hierárquicos e há uma estratégia de posicionamento muito diferente, pois a alocação é virtual e remapeada para diferentes locais físicos.

Ainda precisamos de informações da Microsoft sobre os seguintes parâmetros de ajuste no registro:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\SlabifyFunction]
MinimumReclaimSlabsMB      = REG_DWORD: 10240
MinimumReclaimSlabsPercent = REG_DWORD: 10
SlabEvictUpperBoundKB      = REG_DWORD: 204800
SlabEvictUpperBoundPercent = REG_DWORD: 20

Penso que estes não foram documentados de propósito porque a Microsoft ainda pensa em mudar as estratégias de posicionamento e pode alterá-lo ao longo do tempo. Eles não são expostos pela API, você só encontra suas evidências no registro e na implementação do código-fonte interno do driver NTFS.

Tudo o que sabemos é que as lajes são expostas brevemente pelo parâmetro "/ K" da ferramenta de linha de comando DEFRAG.EXE, que não as detalha muito. Mas é fácil observar que a otimização / K está obtendo enormes ganhos de desempenho após a instalação inicial do Windows (mesmo antes da otimização do Bootvis após 6 reinicializações e medições). Há também os parâmetros / L relacionados ao corte em SSDs.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.