Entrar ou criar conta

Upnetix Labs · protocolo de experimento

Protocolo: Qual o impacto do uso de diferentes sistemas de arquivos no desempenho de leitura e escrita em disco no Ubuntu Server?

Este protocolo avalia como sistemas de arquivos diferentes afetam o desempenho de leitura e escrita em discos em servidores Ubuntu. O participante irá medir a taxa de transferência e a latência usando a ferramenta fio.

Servidores Linux do zero com Ubuntu Server
Ligado ao treinamento Servidores Linux do zero com Ubuntu Server
Protocolo, não resultado. Esta página descreve como medir. Os números que valem são os que você obtém na sua bancada, seguindo o método abaixo. Nenhum valor aqui é resultado de medição da Upnetix.
Pergunta

Como o desempenho de leitura e escrita em disco varia entre ext4, xfs e btrfs no Ubuntu Server sob carga sequencial e aleatória?

Hipótese

Sistemas de arquivos diferentes apresentam variações significativas no desempenho de leitura e escrita sob as mesmas condições de hardware.

Variáveis

Independentes (o que varia)tipo de sistema de arquivos (ext4, xfs, btrfs)
Dependentes (o que se mede)taxa de transferência de leitura (MB/s); taxa de transferência de escrita (MB/s); latência média de leitura (ms); latência média de escrita (ms)
Controladas (o que fica fixo)hardware do servidor; tamanho do arquivo de teste (por exemplo, 4GB); tamanho do bloco (por exemplo, 4kB); quantidade de threads (por exemplo, 4); versão do Ubuntu Server; fio na mesma versão; sem outros processos intensivos rodando

Ambiente

Servidor físico ou VM dedicada rodando Ubuntu Server (consulte a documentação para versão suportada). Disco dedicado para testes. Ferramenta fio instalada para geração de carga e medição.

Procedimento

  1. Preparar disco

    Particione o disco de teste e formate com o sistema de arquivos desejado (ext4, xfs ou btrfs).

    mkfs.ext4 /dev/sdX1 (substitua pelo comando adequado para cada FS)
  2. Montar o sistema de arquivos

    Monte a partição formatada em um ponto de montagem limpo.

    mount /dev/sdX1 /mnt/teste
  3. Executar teste de leitura sequencial

    Utilize fio para medir leitura sequencial.

    fio --name=readseq --filename=/mnt/teste/testfile --size=4G --bs=4k --rw=read --iodepth=4 --numjobs=4 --direct=1 --runtime=60 --group_reporting
  4. Executar teste de escrita sequencial

    Utilize fio para medir escrita sequencial.

    fio --name=writeseq --filename=/mnt/teste/testfile --size=4G --bs=4k --rw=write --iodepth=4 --numjobs=4 --direct=1 --runtime=60 --group_reporting
  5. Executar teste de leitura aleatória

    Utilize fio para medir leitura aleatória.

    fio --name=readrand --filename=/mnt/teste/testfile --size=4G --bs=4k --rw=randread --iodepth=4 --numjobs=4 --direct=1 --runtime=60 --group_reporting
  6. Executar teste de escrita aleatória

    Utilize fio para medir escrita aleatória.

    fio --name=writerand --filename=/mnt/teste/testfile --size=4G --bs=4k --rw=randwrite --iodepth=4 --numjobs=4 --direct=1 --runtime=60 --group_reporting
  7. Repetir para cada sistema de arquivos

    Repita os passos acima para ext4, xfs e btrfs, sempre reformatando e montando novamente.

Planilha de coleta

sistema_arquivos (texto)tipo_teste (texto)taxa_leitura_MBps (MB/s)taxa_escrita_MBps (MB/s)latencia_leitura_ms (ms)latencia_escrita_ms (ms)
ext4, leitura_sequencial, 210 (EXEMPLO), 0 (EXEMPLO), 0.8 (EXEMPLO), 0 (EXEMPLO)

Repetições recomendadas: 5. Baixe a planilha vazia em CSV: colunas prontas.

Análise

Calcule a média, mediana e desvio padrão dos resultados de cada sistema de arquivos para cada tipo de teste. Compare os valores entre sistemas de arquivos para identificar diferenças relevantes. Analise variações superiores a 10% como potencialmente significativas.

Critérios de decisão

  • Resultados consistentes entre repetições (variação inferior a 5% entre execuções).
  • Desempenho superior ou igual ao sistema de arquivos padrão do Ubuntu Server (ext4) é considerado adequado.
  • Latências muito acima dos demais sistemas (>20%) devem ser analisadas.

Fontes de erro e mitigação

  • Cache do sistema operacional pode influenciar resultados; use a opção --direct=1 no fio.
  • Outros processos no servidor podem afetar o desempenho; execute em ambiente dedicado.
  • Diferenças de firmware ou drivers do disco podem afetar resultados; mantenha o ambiente controlado.

Referências

  1. Documentação Ubuntu Server sobre sistemas de arquivos
  2. Página oficial do Ubuntu Server