Upnetix Labs · protocolo de experimento
Protocolo: Qual o impacto do número de réplicas de um modelo KServe na latência de inferência sob carga?
Este protocolo mede como a latência de inferência de um modelo servido pelo KServe varia conforme o número de réplicas é alterado em um cluster Kubernetes. O objetivo é identificar o ponto de saturação e o ganho real de escalabilidade horizontal.

Como a latência de inferência de um modelo KServe varia com o aumento do número de réplicas sob carga constante?
Hipótese
Aumentar o número de réplicas de um modelo KServe reduz a latência média de inferência sob carga até um limite, após o qual o ganho se estabiliza ou desaparece.
Variáveis
| Independentes (o que varia) | número de réplicas do modelo KServe |
|---|---|
| Dependentes (o que se mede) | latência média de inferência; latência p95 de inferência; taxa de erro HTTP 5xx |
| Controladas (o que fica fixo) | tipo e versão do modelo; hardware dos nós do cluster; versão do KServe; carga de requisições (RPS); rede (em uma rede de fibra dedicada como a da Upnetix); configuração do Istio |
Ambiente
Cluster Kubernetes >=1.24, KServe instalado conforme documentação, Istio configurado para roteamento, modelo de IA aberto (por exemplo, sklearn-iris) já implantado, Prometheus para coleta de métricas, ferramenta de carga k6 instalada em pod dedicado.
Procedimento
- Preparar ambiente
Garanta que o cluster está saudável, KServe e Istio instalados, modelo de exemplo publicado e acessível via Ingress.
- Configurar Prometheus
Habilite scraping de métricas do KServe e Istio para latência e erros.
- Definir carga
Configure o k6 para enviar uma carga constante de EXEMPLO 50 requisições por segundo por 5 minutos.
k6 run --vus 50 --duration 5m script.js - Executar teste para 1 réplica
Ajuste o número de réplicas do modelo para 1 e execute o teste de carga.
kubectl scale inferenceService <nome> --replicas=1 - Coletar métricas
Durante o teste, registre latência média, latência p95 e taxa de erro via Prometheus.
- Repetir para 2, 4 e 8 réplicas
Repita os passos anteriores para cada quantidade de réplicas.
kubectl scale inferenceService <nome> --replicas=<N> - Repetir cada teste
Execute cada configuração de réplicas por 5 vezes para robustez estatística.
Planilha de coleta
| replicas (unidade) | latencia_media_ms (milissegundos) | latencia_p95_ms (milissegundos) | taxa_erro_5xx_percent (percentual) |
|---|---|---|---|
| EXEMPLO: 4, 120, 180, 0.5 | |||
Repetições recomendadas: 5. Baixe a planilha vazia em CSV: colunas prontas.
Análise
Calcule média e desvio padrão dos resultados por configuração de réplicas. Compare latências médias e p95 entre as configurações. Identifique o ponto em que aumentar réplicas não reduz mais a latência ou aumenta a taxa de erro. Use gráficos para visualizar tendências.
Critérios de decisão
- Latência média e p95 devem diminuir ou estabilizar com o aumento de réplicas.
- Taxa de erro 5xx deve permanecer abaixo de 1%.
- Se a latência não melhorar ao aumentar réplicas, investigar gargalos (rede, CPU, limitação do modelo).
Fontes de erro e mitigação
- Variação de carga na rede pode afetar latência; execute testes em horários de baixa variação.
- Caches quentes podem reduzir latência em execuções posteriores; descarte a primeira execução ou aqueça o cache previamente.
- A performance pode variar entre pods; garanta distribuição homogênea dos pods entre nós.
Referências
- KServe Official Docs · Kserve.github (kserve.github.io)
- Kubernetes Docs · Kubernetes (CNCF) (kubernetes.io)
- Prometheus Docs · Prometheus (CNCF) (prometheus.io)
- Publicado
- 09/09/2026
- Última revisão
- 09/09/2026
- Versão do conteúdo
- 1.0
- Referências
- 3 oficiais
- Revisão técnica
- redação e revisão por IA, URLs conferidas na publicação
- Status
- Atual
