Entrar ou criar conta

Upnetix Labs · protocolo de experimento

Protocolo: Qual o impacto do uso de conexões persistentes no tempo de resposta de uma API Django REST sob carga?

Este protocolo responde se conexões HTTP persistentes (keep-alive) reduzem a latência média de resposta de uma API Django REST. A pessoa vai medir o tempo de resposta médio e máximo sob diferentes configurações de conexão.

Desenvolvimento web com Python e Django
Ligado ao treinamento Desenvolvimento web com Python e Django
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

Conexões HTTP persistentes melhoram o tempo de resposta de uma API Django REST em comparação com conexões não persistentes?

Hipótese

O uso de conexões HTTP persistentes (keep-alive) reduz o tempo de resposta médio da API Django REST sob carga moderada.

Variáveis

Independentes (o que varia)tipo de conexão HTTP (persistente vs não persistente)
Dependentes (o que se mede)tempo de resposta médio (ms); tempo de resposta máximo (ms); taxa de erro (%)
Controladas (o que fica fixo)hardware do servidor; versão do Django; versão do Python; banco de dados (PostgreSQL); volume de requisições; endpoint testado; rede

Ambiente

Servidor com Django REST Framework, Python 3.x, PostgreSQL, rodando em ambiente isolado (Docker recomendado). Ferramenta de teste de carga: k6 (código aberto).

Procedimento

  1. Preparar ambiente

    Suba a aplicação Django REST em ambiente Docker, conectada ao PostgreSQL, com endpoint de teste simples (ex: GET /api/items/).

  2. Configurar k6 para conexões não persistentes

    Configure o script do k6 para desabilitar keep-alive.

    k6 run --http-keepalive=false script.js
  3. Executar teste (não persistente)

    Execute o teste de carga por 5 minutos com 50 usuários virtuais.

    k6 run --vus 50 --duration 5m --http-keepalive=false script.js
  4. Coletar métricas

    Registre tempo de resposta médio, máximo e taxa de erro.

  5. Configurar k6 para conexões persistentes

    Configure o script do k6 para habilitar keep-alive.

    k6 run --http-keepalive=true script.js
  6. Executar teste (persistente)

    Execute o teste de carga por 5 minutos com 50 usuários virtuais.

    k6 run --vus 50 --duration 5m --http-keepalive=true script.js
  7. Coletar métricas

    Registre tempo de resposta médio, máximo e taxa de erro.

  8. Repetir

    Repita cada teste 5 vezes para reduzir variabilidade estatística.

Planilha de coleta

tipo_conexao (string)tempo_resposta_medio_ms (ms)tempo_resposta_max_ms (ms)taxa_erro_percentual (%)
EXEMPLO: persistente, 120, 350, 0.2

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

Análise

Calcule média, mediana e desvio padrão dos tempos de resposta e taxas de erro para cada configuração. Compare os valores entre conexões persistentes e não persistentes. Use gráficos de boxplot para visualizar a distribuição dos tempos.

Critérios de decisão

  • A configuração com menor tempo de resposta médio e taxa de erro é considerada mais eficiente.
  • Diferenças menores que 5% podem ser consideradas irrelevantes, consulte a documentação do Django para limites de tuning.

Fontes de erro e mitigação

  • Variação de rede: execute testes em horários diferentes para avaliar consistência.
  • Cache do banco de dados: limpe ou reinicie o banco entre execuções.
  • Carga do sistema: monitore uso de CPU e memória para evitar gargalos externos ao Django.

Referências

  1. Django Deployment Checklist · Django Software Foundation (docs.djangoproject.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.