Eu sei que a recomendação comum para o volume de dados no SQL Server é usar blocos/faixas de 64 KB, já que o I/O normalmente é feito por extensões inteiras. No entanto, não consigo encontrar nenhuma boa informação sobre a E/S do arquivo de log.
Tenho observado a atividade de E/S no Process Monitor por um tempo e parece que os tamanhos de E/S do arquivo de log variam de 512 bytes a pouco menos de 64 KB. Suponho que isso dependa do tamanho da transação que está sendo registrada, e as grandes são divididas usando várias gravações de ~ 64 KB.
Então, supondo que eu tenha a partição alinhada com as faixas de RAID, seria seguro assumir que blocos/faixas de 64 KB produzirão o melhor desempenho, todas as outras coisas sendo iguais? Eu esperaria que as transações menores, ou seja, aquelas com gravações de 512 bytes, não fossem pesadas o suficiente para que a penalidade de tamanho de bloco grande tivesse um impacto significativo, enquanto as transações muito maiores que gravavam muitos blocos de 64 KB em rápida sucessão teriam ser mais importante para sintonizar.
Blocos de 64k são geralmente melhores. As gravações de log devem atingir o máximo em cerca de 60k, mas em 64k você está alinhado com o tamanho do bloco físico no disco.
Lembre-se de que existem dois tipos diferentes de alinhamento: tamanho do bloco e deslocamento. Ambos os tipos de alinhamento se concentram nas diferenças entre particionamento/formatação do sistema operacional e particionamento/formatação subjacente da matriz de armazenamento.
Um disco com alinhamento de bloco significa que o sistema operacional e a matriz de armazenamento subjacente são formatados com os mesmos tamanhos de bloco. Há alguns ganhos de desempenho que podem ser obtidos aqui, mas, de modo geral, esses ganhos são insignificantes. O Microsoft SQL recomenda que as unidades de log e dados sejam formatadas em blocos de 64k.
O alinhamento de deslocamento é o assassino silencioso do desempenho. Se os deslocamentos não estiverem configurados para alinhar corretamente, um único bloco na camada do sistema operacional poderá sobrepor dois ou mais blocos na camada de armazenamento. Quando o sistema operacional solicita esse único bloco, ele aciona a camada de armazenamento para extrair e retornar todos os blocos da camada de armazenamento. Se você corrigir um deslocamento desalinhado, verá um aumento de desempenho.
Esta imagem mostra como, em vários níveis, o alinhamento do disco pode estar desativado para incluir o sistema operacional, a camada vmware e a matriz de armazenamento. Se estiver executando em um servidor físico, você se concentrará apenas na primeira e na última linha do gráfico.
Veja também: