2 pontos por computerphilosopher 5 시간 전 | Ainda não há comentários. | Compartilhar no WhatsApp
  • Os parâmetros padrão do ZFS são definidos como um meio-termo entre acesso sequencial e acesso aleatório
    • Se você conhece claramente as características da carga de trabalho, é possível fazer um ajuste mais agressivo
  • Explicação da diferença entre acesso sequencial vs acesso aleatório
    • Em HDDs, por causa do movimento da cabeça, o desempenho de acesso aleatório pode ser de dezenas a centenas de vezes mais lento que o acesso sequencial
    • Mesmo em SSDs, o acesso aleatório ficou muito mais rápido, mas o acesso sequencial ainda é mais eficiente
    • Cargas de trabalho que leem arquivos grandes em ordem têm forte tendência a acesso sequencial
    • Cargas de trabalho que leem com frequência vários arquivos pequenos tendem fortemente ao acesso aleatório
  • Introdução a métodos de análise da carga de trabalho
    • Inferência lógica com base no código/na estrutura
    • Cálculo do tamanho médio de IO com base em throughput (bps) + número de IOs por segundo (iops)
    • Análise da distribuição de tamanho de IO com base em zpool iostat -r
  • Interpretação de zpool iostat -r
    • ind: tamanho de cada requisição lógica individual
    • agg: tamanho do IO real executado após a fusão
    • Se agg for maior que ind, isso significa que a fusão de IOs adjacentes está funcionando bem
  • Resultado da análise da carga de trabalho de exemplo
    • Cerca de 76% de participação de leituras síncronas
    • Mais de 99% das leituras têm 32KiB ou menos
    • Nas escritas assíncronas também há alta proporção de IOs pequenos
    • No geral, é uma carga de trabalho com tendência muito forte a acesso aleatório
  • zfs_prefetch_disable
    • O ZFS carrega previamente blocos adjacentes no ARC ao detectar um padrão de acesso sequencial
    • Em cargas de trabalho de acesso aleatório, a taxa de acerto da pré-leitura pode ser baixa e acabar apenas aumentando IOs desnecessários
    • É possível medir a eficiência da pré-leitura com base em arc_summary
    • Se a taxa de acerto for baixa, vale considerar zfs_prefetch_disable
  • recordsize
    • O valor padrão é 128K
    • Como na carga de trabalho de exemplo a maioria dos IOs é de 32KiB ou menos, pode valer considerar um recordsize menor
  • Escolha do valor ideal
    • É importante decidir com base em benchmarks
    • Bancos de dados como MySQL/Postgres já têm muitos casos de ajuste validados
    • Em geral, costuma-se usar um recordsize semelhante ao tamanho de página do banco de dados

Ainda não há comentários.

Ainda não há comentários.