Entrar ou criar conta

Protocolo: Qual o impacto do uso de volumes Docker no desempenho de I/O de containers?

Este protocolo mede a diferença de desempenho de I/O entre containers Docker usando volumes persistentes e armazenamento apenas no sistema de arquivos do container. O objetivo é quantificar a latência e a taxa de transferência de operações de leitura e escrita.

Operação de containers com Docker Engine + GitLab CE
Ligado ao treinamento Operação de containers com Docker Engine + GitLab CE

Roteiro para estudo em ambiente de laboratório ou de teste. Execute apenas em equipamentos, redes e contas que você tenha autorização para usar, com backup e homologação próprios. Comandos podem causar indisponibilidade ou perda de dados. Software e marcas citados pertencem aos seus titulares. Termos de Uso.

Protocolo, não resultado. Esta página descreve como medir. Execução pela engenharia Upnetix: ainda não realizada. Nenhum valor aqui é resultado de medição da Upnetix; os números que valem são os que você obtém na sua bancada.
Pergunta

O uso de volumes Docker afeta o desempenho de I/O (latência e throughput) dos containers em comparação ao armazenamento interno do container?

Hipótese

Containers Docker usando volumes montados apresentam desempenho de I/O diferente em comparação ao uso exclusivo do sistema de arquivos interno do container.

Variáveis

Independentes (o que varia)Tipo de armazenamento (volume Docker vs. filesystem interno do container)
Dependentes (o que se mede)Latência de I/O; Taxa de transferência de I/O (MB/s)
Controladas (o que fica fixo)Imagem base do container; Configuração do host Docker; Tamanho do arquivo de teste; Ferramenta de benchmark; Recursos do host (CPU, RAM)

Ambiente

Host Linux com Docker Engine instalado (consulte a documentação para versão mínima). Ferramenta fio (https://github.com/axboe/fio) instalada no container. Dois containers idênticos: um usando volume Docker montado em /data, outro usando apenas o filesystem padrão do container.

Procedimento

  1. Preparar host

    Certifique-se de que Docker Engine está instalado e operacional.

  2. Criar volume Docker

    Crie um volume Docker para uso no teste.

    docker volume create test_volume
  3. Rodar container com volume

    Inicie um container com o volume montado em /data.

    docker run --rm -it -v test_volume:/data ubuntu:latest bash
  4. Instalar fio no container

    No shell do container, instale o fio.

    apt-get update && apt-get install -y fio
  5. Executar benchmark no volume

    Execute o fio para medir I/O em /data.

    fio --name=vol_test --directory=/data --size=1G --bs=4k --rw=readwrite --ioengine=libaio --numjobs=1 --runtime=60 --group_reporting
  6. Rodar container sem volume

    Inicie outro container idêntico, sem volume montado.

    docker run --rm -it ubuntu:latest bash
  7. Instalar fio no container

    No shell do container, instale o fio.

    apt-get update && apt-get install -y fio
  8. Executar benchmark no filesystem interno

    Execute o fio para medir I/O em /tmp.

    fio --name=fs_test --directory=/tmp --size=1G --bs=4k --rw=readwrite --ioengine=libaio --numjobs=1 --runtime=60 --group_reporting
  9. Repetir testes

    Repita cada teste pelo menos 5 vezes para cada cenário, alternando a ordem para reduzir viés.

Planilha de coleta

cenario (volume|filesystem)latencia_media_ms (ms)throughput_mb_s (MB/s)desvio_padrao_latencia (ms)desvio_padrao_throughput (MB/s)
EXEMPLO: volume, 1.2, 120, 0.1, 5

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 latência e throughput para cada cenário. Compare os valores entre volume e filesystem interno. Analise se a diferença é estatisticamente relevante (por exemplo, se a média do volume for consistentemente maior ou menor que a do filesystem interno).

Critérios de decisão

  • Se a diferença média de latência ou throughput entre os cenários for superior a 10% e consistente nas repetições, considere o impacto significativo.
  • Se o desvio padrão for alto, repita o teste ou investigue causas externas.

Fontes de erro e mitigação

  • Cache do sistema operacional pode influenciar resultados; limpe caches entre execuções ou reinicie o container.
  • Carga do host pode afetar desempenho; execute testes em horários de baixa utilização.
  • A ordem dos testes pode influenciar; alterne a ordem entre repetições.

Referências

  1. Documentação Docker volumes · Docker, Inc. (docs.docker.com)
Verificação editorial
Publicado
09/09/2026
Última revisão
09/09/2026
Versão do conteúdo
1.0
Referências
1 oficiais
Revisão técnica
redação e revisão por IA, URLs conferidas na publicação
Status
Atual
Encontrou um erro? Escreva para comercial@upnetix.com.br com o endereço da página. A revisão semestral por IA nunca altera comandos ou configurações sem passar pela fila de revisão.