Conceitos

Lei de Little em teste de carga: dimensionar e conferir

7 min de leitura

A lei de Little em teste de carga diz que o número médio de usuários ou requisições dentro de um sistema é igual ao ritmo com que eles passam por ele multiplicado pelo tempo médio que cada um fica lá: L = λW. Com um número fixo de usuários virtuais, isso vira usuários = voltas por segundo × (tempo de resposta + tempo de pensamento), o que mostra antes de uma execução se o plano consegue atingir a taxa alvo e, depois, se os resultados fecham. Ela trabalha com médias sobre um trecho estável do teste, então não diz nada sobre percentis.

Os exemplos abaixo são aritmética, sem nenhum teste por trás. Os fatos sobre ferramentas vêm da documentação de cada projeto, conferida em 9 de outubro de 2026.

TermoDefinição de LittleUsuários virtuais fixos (modelo fechado)Taxa de chegada (modelo aberto)
LNúmero médio de itens no sistemaUsuários virtuais, esperando ou em pausaIterações em andamento
λTaxa média de chegadaVoltas concluídas por segundoA taxa que você define
WTempo médio dentro do sistemaTempo de resposta + tempo de pensamento por voltaDuração de uma iteração

O que diz a lei de Little?

No longo prazo, o número médio de itens em um sistema de filas é igual à sua taxa média de chegada multiplicada pelo tempo médio que cada um passa nele. Conhecendo duas das três grandezas, você calcula a terceira.

John D. C. Little publicou a prova em 1961 na Operations Research com o título A Proof for the Queuing Formula: L = λW. Na revisão que publicou pelos 50 anos da lei, de 2011, ele escreve que ela vale sob condições notavelmente gerais: para uma única fila ou uma rede inteira, para uma subclasse de itens ou para todos, e qualquer que seja a ordem de atendimento. O mesmo artigo leva os termos para um servidor: requisições em processamento, requisições por segundo e tempo de resposta médio.

O que significam L, λ e W em um teste de carga?

Depende de onde você traça a fronteira do sistema. Ao redor do servidor, L são as requisições em andamento e W é o tempo de resposta; ao redor da volta completa de um usuário virtual, L são todos os usuários virtuais e W é o tempo de resposta mais o tempo de pensamento.

Em um teste com modelo fechado, cada usuário está sempre em algum ponto da sua volta: esperando uma resposta ou fazendo uma pausa entre dois passos. Com a fronteira ao redor da volta, todos contam como “dentro”, λ é o ritmo com que as voltas terminam e W é a duração média de uma volta, incluindo o tempo de pensamento que o script adiciona:

usuários = voltas por segundo × (resposta + pensamento)

Ao redor do servidor, a mesma lei dá as requisições em andamento: requisições por segundo × tempo de resposta médio, o número que seus pools de conexão e threads de trabalho precisam comportar. Mantenha os três valores na mesma fronteira e no mesmo trecho de tempo; misturá-los dá resultados plausíveis e errados.

Como dimensionar um teste com modelo fechado usando a lei de Little?

Converta a taxa de requisições alvo em voltas por segundo e multiplique pela duração esperada de uma volta: o resultado é o número de usuários virtuais de que o plano precisa. Use o tempo de resposta que você espera com a carga alvo, que costuma ser maior do que o visto com poucos usuários.

Um exemplo, só aritmética. A meta é 100 requisições por segundo, cada volta envia 4 requisições que devem levar 0,5 segundo cada, e o script faz 3 pausas de 2 segundos em média:

voltas por segundo  = 100 requisições/s ÷ 4 requisições = 25
duração por volta   = 4 × 0,5 s + 3 × 2 s               = 8 s
usuários virtuais   = 25 voltas/s × 8 s                 = 200

Trate 200 como o mínimo. Se as respostas levarem 1 segundo com essa carga, uma volta dura 10 segundos e a mesma meta precisa de 250 usuários.

Por que os mesmos usuários enviam menos requisições quando o sistema fica lento?

O número de usuários é fixo, então quando uma volta fica mais longa, as voltas por segundo precisam cair. A carga cai justamente quando o sistema começa a sofrer.

Mantenha os 200 usuários e faça cada requisição levar 2 segundos. Uma volta passa a durar 4 × 2 + 6 = 14 segundos, e 200 ÷ 14 dá cerca de 14,3 voltas, ou cerca de 57 requisições por segundo. O teste continua mostrando 200 usuários enquanto roda a pouco mais da metade da taxa planejada. O artigo sobre o modelo de carga aberto vs fechado explica por que isso esconde a saturação; a lei de Little prevê o tamanho da queda.

Ela também mostra como é um limite de capacidade. Quando a taxa de requisições não consegue mais subir, cada usuário extra só acrescenta espera: com um teto de 25 voltas por segundo, 300 usuários significam 12 segundos por volta e 400 usuários, 16. O gráfico de tempo de resposta vs usuários virtuais da LoadFocus mostra o tempo de resposta médio e máximo em função do número de usuários virtuais ativos, um ponto por nível alcançado, e é ali que essa subida constante aparece.

Como conferir um teste terminado com a lei de Little?

Pegue a taxa de requisições e o tempo de resposta médios de um trecho em que o número de usuários ficou estável, reconstrua a partir deles o número de usuários e compare com o que você configurou. Uma diferença grande significa que parte do tempo está escapando dos seus números.

Outro exemplo aritmético. Uma execução mantém 200 usuários e registra 80 requisições por segundo com média de 0,6 segundo, com as mesmas 4 requisições e 6 segundos de pausas por volta. São 20 voltas por segundo de 4 × 0,6 + 6 = 8,4 segundos cada, o suficiente para 168 usuários. Os outros 32 significam que cada volta durou na verdade 10 segundos, então cerca de 1,6 segundo por volta fica sem explicação. Onde procurar:

  • O estabelecimento de conexões. No k6, http_req_duration deixa de fora a resolução DNS e a conexão (referência de métricas, conferida em 9 de outubro de 2026).
  • O gerador de carga. Um gerador sobrecarregado atrasa o script entre requisições.
  • O tempo de pensamento. Pausas aleatórias podem durar em média mais do que o plano prevê.
  • A janela. Se ela pega parte de uma rampa, havia em média menos usuários ativos.

O k6 também mede a volta diretamente: vus conta os usuários virtuais ativos e iteration_duration a duração de uma iteração completa, então os usuários ativos devem ficar perto de iterações por segundo × duração média de uma iteração.

E os testes por taxa de chegada?

A lei vale com a fronteira ao redor de cada iteração: as iterações em andamento são iguais à taxa de chegada vezes a duração de uma iteração. Esse é o número de usuários virtuais que a ferramenta precisa manter prontos.

O guia do k6 sobre alocação de VUs para executores arrival-rate estima esse número como a duração mediana de uma iteração × a taxa, mais uma constante para a variação (conferido em 9 de outubro de 2026). É a lei de Little com a mediana no lugar da média; algumas iterações lentas puxam a média para cima da mediana, por isso a margem importa.

A LoadFocus roda scripts k6 na própria nuvem, e lá os cenários de taxa de chegada rodam com um número fixo de usuários; o validador de scripts avisa isso quando você adiciona um script assim. Dimensione esses testes com a conta do modelo fechado acima e espere que a taxa caia se as respostas ficarem mais lentas.

Onde a lei de Little deixa de funcionar?

Ela liga médias sobre um trecho em que o sistema está em equilíbrio. Percentis, janelas curtas e rampas ficam de fora.

  • Só médias. Um teste pode cumprir a lei enquanto uma em cada vinte requisições espera dez vezes a média; julgue os resultados também pelos percentis.
  • Um trecho estável. A prova de 1961 supõe um processo estacionário, e a revisão de 2011 mostra que a fórmula também é exata em uma janela finita que começa e termina vazia. Um platô de teste não é nenhuma das duas coisas, então escolha um longo, em que tantos usuários terminem voltas quantos as comecem.
  • Rampas. Enquanto usuários estão sendo adicionados, o pico configurado não é L: use a média de usuários no tempo da janela ou deixe a rampa de fora.
  • Erros. Falhas rápidas contam como requisições concluídas com tempos curtos, então um sistema falhando ainda pode fechar a equação. Confira primeiro a taxa de erros.

FAQ

A lei de Little exige chegadas de Poisson ou um tipo de fila específico? Não. As provas da revisão de Little não supõem nada sobre o padrão de chegadas nem sobre os tempos de atendimento, e o resultado vale qualquer que seja a ordem de atendimento. Basta que as médias existam no período que você mede.

A lei de Little consegue prever o tempo de resposta p95? Não. Ela liga três médias, então pode conferir um tempo de resposta médio, mas não diz nada sobre a forma da distribuição nem sobre os poucos por cento mais lentos.

Leituras relacionadas


As afirmações técnicas deste artigo não foram revisadas de forma independente.

LoadFocus team
Escrito pela equipe da LoadFocus, as pessoas por trás de um serviço de teste de carga na nuvem.