Com muitos novos discos rígidos, o tamanho do setor físico é 4096. Seria possível fazer o sistema usar um tamanho de setor lógico do mesmo tamanho, em vez do tamanho padrão do setor lógico de 512?
Isso acelerará as leituras e gravações em massa? Onde pode ser configurado?
hard-disk
performance
io
Matan
fonte
fonte
mkfs.*
devem usar automaticamente o tamanho ideal do setor. Você pode fazer algunsmkfs.*
testes e inspecionar o resultado (na saída detalhada do mkfs ou em um programa utilitário fs relacionado).Respostas:
512 bytes não é realmente o tamanho padrão do setor. Depende do seu hardware.
Você pode exibir quais setores físicos / lógicos dimensionam seus relatórios de disco por meio do
/sys
pseudo sistema de arquivos, por exemplo:Qual é a diferença entre esses dois valores?
physical_block_size
é o tamanho mínimo de um bloco que o inversor é capaz de gravar em uma operação atômica.logical_block_size
é o menor tamanho que a unidade pode gravar (consulte a documentação do kernel do linux).Portanto, se você tiver uma unidade de 4k, faz sentido que sua pilha de armazenamento (sistema de arquivos etc.) use algo igual ou superior ao tamanho do setor físico.
Esses valores também são exibidos nas versões recentes de
fdisk
, por exemplo:Nas atuais distribuições Linux, os programas (que devem se preocupar com o tamanho ótimo do setor)
mkfs.xfs
escolherão o tamanho ideal do setor por padrão (por exemplo, 4096 bytes).Mas você também pode especificá-lo explicitamente através de uma opção, por exemplo:
Ou:
De qualquer forma, a maioria das
mkfs
variantes também exibirá o tamanho do bloco usado durante a execução.Para um sistema de arquivos existente, o tamanho do bloco pode ser determinado com um comando como:
Ou:
Ou:
Ao criar o sistema de arquivos em uma partição, outra coisa a verificar é se o endereço inicial da partição está realmente alinhado ao tamanho do bloco físico. Por exemplo, observe a
fdisk -l
saída, converta os endereços iniciais em bytes, divida-os pelo tamanho do bloco físico - o lembrete deve ser zero se as partições estiverem alinhadas.fonte
fdisk -l
, dividi-o por 8 e, em seguida, por 512. o restante não era 0, então a partição parece não estar alinhadafdisk -l
relatórioUnits = sectors of 1 * 512 = 512 bytes
em um dos meus sistemas Linux - portanto, para uma unidade lógica / física 512/4096 com 2 partições começando em 2048 e 1026048, eu computo2048*512%4096
e1026048*512%4096
- por exemplo, em um shell python. Como ambas as expressões são iguais a zero, essas partições estão alinhadas em 4k.Não, não é possível, nem importaria se fosse. As E / S normalmente são feitas em unidades de pelo menos 4096 bytes, e geralmente muito mais.
fonte
Sim, é possível, no entanto, isso faria com que a unidade se enchesse muito mais rapidamente do que deveria. Para arquivos com menos de 512K, cada arquivo ocuparia 4096K (4MB) e preencheria o resto do setor com zeros devido à incapacidade da maioria dos sistemas de arquivos (NTFS e similares) para permitir que os arquivos compartilhem setores. A melhor opção para um sistema de arquivos seria permitir tamanhos de setor variáveis; no entanto, isso aumenta o tamanho da MFT (tabela de arquivos mestre) e aumenta o risco de corrupção de dados, reduzindo a capacidade de recuperar dados facilmente. Em outras palavras, os limites não seriam totalmente conhecidos pelo software de recuperação. Portanto, enquanto um tamanho de setor lógico de 4096K é incrível para arquivos grandes, para um PC de uso diário normal, são apenas 0 zeros. Agora, com isso dito, existe a opção de armazenar dados na própria MFT quando se trata de dados menores que o tamanho do setor lógico. Isso, no entanto, significa que sua MFT se torna enorme e os dados serão gravados duas vezes (existem duas cópias da MFT no seu HDD). Você também teria que especificar o tamanho máximo da MFT, o que pode causar problemas quando você atingir o máximo ou o uso da unidade exceder o que seria livre para a MFT usar. Tudo isso é baseado no uso de um sistema de arquivos NTFS. No lado positivo, o NTFS permite que você use a compactação nativa para arquivos no nível do bloco para qualquer tamanho de setor lógico de 4 MB ou menos. Essa limitação é aplicada devido à maneira como a compactação NTFS funciona. Blocos de 4 MB são lidos e compactados, independentemente do tamanho do setor lógico. Isso, é claro,
Então, isso esclarece um pouco as coisas para você?
fonte
fonte