Quantas solicitações meu servidor da web pode atender?

39

Não entrando em detalhes sobre as especificações, pois sei que não há uma resposta real para isso. Mas eu tenho feito testes de carga hoje com o abcomando no apache.

E chegou ao número de 70 solicitações por segundo (1000 solicitações com 100 usuários simultâneos), em uma página que está sendo carregada de 4 tabelas de banco de dados diferentes e fazendo alguma manipulação com os dados. Portanto, é uma página bastante pesada.

O servidor não é usado para mais nada por enquanto e a carga nele sou apenas eu, pois está em desenvolvimento. Mas o aplicativo será usado diariamente por muitos usuários.

Mas isso é suficiente? Ou devo me preocupar (contanto que mais de X solicite um segundo)

Estou pensando que não deveria me preocupar, mas gostaria de algumas dicas sobre isso.

Ólafur Waage
fonte

Respostas:

44

70 solicitações por segundo resultam em uma taxa horária de 252.000 renderizações de página / hora.

Se você presumir que a sessão média de navegação do seu site tem 10 páginas, é possível oferecer suporte a 25.000 únicos / hora.

Provavelmente, você deve verificar esses números com base na contagem esperada de visitantes, que deve estar disponível para as pessoas do lado comercial.

Muitos dos sites em que trabalho visualizam cerca de 50% do tráfego diário em um período de pico de aproximadamente 3 horas por dia. Se esse for o caso do seu site (depende do tipo de conteúdo que você fornece e do público-alvo), poderá oferecer suporte a uma contagem diária única de visitas de cerca de 150.000.

Estes são números muito bons; Eu acho que você deveria ficar bem. É aconselhável analisar agora o cache do código de operação e o ajuste do banco de dados, mas lembre-se: a otimização prematura é a raiz de todo mal. Monitore o site, procure pontos de acesso e aguarde o crescimento do tráfego antes de realizar um esforço de otimização caro para um problema que você pode não ter.

Tim Howland
fonte
Resposta muito boa, exatamente o que eu estava procurando. Eu não fiz nenhuma otimização e queria obter números de linha de base para ver onde eu estava sentado no momento.
Ólafur Waage
"Se você pressupõe que a sessão média de navegação do seu site tem 10 páginas, é possível oferecer suporte a 25.000 únicos / hora" ... assumindo que cada único envia uma solicitação a cada segundo durante a sessão. Se um visitante precisar pensar antes de um próximo clique / solicitação - por exemplo, 5 segundos - você poderá oferecer suporte a mais visitantes em sessões paralelas.
Jochem Schulenklopper
Eu concordo totalmente sobre "otimização prematura" de uma perspectiva de código. Mas, escolher um projeto defeituoso como um todo é na verdade a raiz de todo mal. Nada pode superar um design defeituoso, exceto uma reescrita.
11136 Jeff Fischer
5

Eu usei duas ferramentas para assistir ao desempenho dos meus servidores apache no passado.

Um deles é o munin , que representa graficamente todo tipo de coisas, incluindo número de instâncias do apache, número de conexões, memória disponível, uso do processador, etc. - e me ajuda a determinar quando estou me aproximando de uma zona de perigo e por quê.

A segunda é simplesmente a página de status do servidor apache ( http: // seu_servidor / status do servidor? Refresh = 10 ), que permite ver o estado de cada conexão, além de quantas conexões gratuitas estão disponíveis a qualquer momento.

Brent
fonte
1

Eu sugiro que você se preocupe apenas se você acha que seu aplicativo estará muito ocupado quando atingir o chão. É provável que a página em questão seja atingida com tanta força? Mais difíceis? Menos? Se você não tem idéia, eu suspeitaria que é improvável que seja um problema mais cedo. Se for a página mais lenta, você conhecerá um lugar para procurar se precisar otimizar o sistema posteriormente.

Também há muitas coisas que você pode fazer para ajustar a maioria dos servidores da Web e mecanismos de banco de dados para reduzir ainda mais o desempenho.

acrrosman
fonte
Gostaria de estar preparado para uma pequena quantidade de solicitações, por exemplo, uma página muito rápida pode lidar com cerca de 110 solicitações por segundo. Enquanto o servidor pode lidar com 2900 rps em uma página vazia.
Ólafur Waage
0

Você declara em um comentário que seu servidor pode processar 2.900 solicitações por segundo em uma página vazia. Isso indica fortemente que não é o servidor da web em si - é o processamento.

Se você estiver usando PHP, considere um código de código como o APC . Se o banco de dados for um gargalo, o memcached também o ajudará.

ceejayoz
fonte
Não está especialmente preocupado com números se 70 rps é suficiente.
Ólafur Waage
0

Depois de colocar o site no ar, você também pode consultar o mod_top 1, que fornecerá uma visualização em tempo real da carga atual no Apache. Eu não o instalei, mas certamente parece ter mais informações e uma melhor discriminação de carga do que o status padrão do servidor Apache.


fonte