Como posso estimar com segurança o número máximo de usuários com base em uma medida de teste de carga, como acertos máximos / segundo?

4

No meu caso específico, estou trabalhando com sites, mas a questão é mais geral do que isso. O que eu estou procurando (eu acho) é algo como uma fórmula.

A situação é que já fiz testes de carga para determinar o ponto de ruptura do servidor. Eu sei que mais do que, digamos, 100 acertos / segundo faz com que o servidor sobrecarregue e execute de forma inaceitável. É trivial extrapolar esse número para 360.000 ocorrências / hora (100 × 60 × 60).

O problema surge quando recebo perguntas de marketing como: "para nossa próxima campanha publicitária, com quantos visitantes podemos lidar?" Eles trabalham com números como "2 milhões de pessoas verão nosso anúncio. Com base na experiência passada, sabemos que cerca de 10% dessas pessoas vão clicar para que 200 mil visitantes acessem o site. Podemos lidar com isso? ”Se esses 200.000 visitantes foram distribuídos uniformemente por uma hora inteira, os números acima nos informam que o servidor poderia lidar com a carga. Mas e se os visitantes ainda estivessem espalhados por uma hora, exceto que a maioria dos visitantes chegou ao site nos primeiros 15 minutos? O site seria sobrecarregado (100 × 60 × 15 < 200.000 2).

A resposta depende claramente da distribuição de acessos. Infelizmente, não tenho dados anteriores. Então, quais são distribuições típicas para sites em ambos os extremos do espectro (sites com distribuição uniforme e sites com distribuições altamente concentradas)? Se você não sabe, tudo bem, pois eu posso perguntar novamente essa parte especificamente em uma pergunta separada. Mais importante:

Supondo que eu saiba o que é a distribuição, como aplicar esse conhecimento para determinar o número máximo de visitantes em um determinado intervalo com base em acertos máximos / segundo?

Até agora, presumi que um visitante significa um hit. Na realidade, cada visitante fará um ou mais acessos no site. Para levar isso em conta, posso simplesmente pegar a média de acertos / visitante e dividir de acordo? Ou preciso levar em conta a distribuição de page views por visitante (por exemplo, 90% dos visitantes atingem uma página, 5% acessam duas páginas e 5% acessam mais de duas páginas)?

Como consideração final, tudo isso envolve muita adivinhação. Esta modelagem irá (em teoria) nos dar um número máximo, mas quanto você recua com esse número antes de passá-lo? O que você acha de expressar a incerteza do resultado?

    
por Michael Kropat 16.12.2011 / 17:49

1 resposta

2

Não se trata de adivinhação, mas principalmente de estatísticas. É por isso que é extremamente difícil fazer uma previsão sem dados para situações semelhantes. A distribuição dos hits seguirá algum tipo de curva - para saber se o seu sistema pode lidar com a carga, você precisará olhar para o pico da curva e compará-la aos seus limites, levando em consideração também que você precisaria de algum tipo de "zona de segurança" caso as estimativas estivessem erradas. A abordagem de "engenharia" para determinar a zona de segurança é obter o número máximo e excesso de engenharia por um fator de pelo menos 2. O fator de engenharia excessiva precisa ser ajustado se uma falha do sistema resultar em custos muito altos ou, mais precisamente, se o custo da engenharia excessiva é menor em comparação com o custo de uma falha.

A taxa de acessos / visitantes é uma função do design do seu site ou aplicativo e, teoricamente, ele pode ser calculado. Mas uma abordagem estatística será muito mais simples aqui também se o site tiver alguma complexidade considerável.

    
por 17.12.2011 / 12:47