Como avaliar o servidor da web com bancada Apache

Como avaliar o servidor da web com bancada Apache

O Apache Bench é uma ferramenta usada para medir o desempenho de um servidor da web. Apesar de ter "apache" em seu nome, ele pode ser usado para testar qualquer tipo de servidor da web. Neste tutorial, examinaremos as etapas para usar o Banco Apache e como interpretar seu relatório sobre o desempenho de um servidor da web.

O Apache Bench funciona enviando quantidades variadas de solicitações HTTP para o servidor da Web e gravando os tempos de resposta. Pode dizer quanto congestionamento o servidor pode lidar antes de ficar sobrecarregado e o desempenho diminuir.

Neste tutorial, você aprenderá:

  • Como instalar o Banco Apache
  • Como usar o Banco Apache
  • Como interpretar os resultados do banco Apache
Como avaliar o servidor da web com bancada Apache

Requisitos de software e convenções usadas

Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema Qualquer distribuição GNU/Linux
Programas ab
Outro Acesso privilegiado ao seu sistema Linux como raiz ou através do sudo comando.
Convenções # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando
$ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

Como instalar o Banco Apache

O Apache Bench faz parte do pacote Apache2-Utils, que pode ser instalado com o gerenciador de pacotes do seu sistema.
Para o Ubuntu e outras distribuições baseadas em Debian, use o comando apt-get para instalá-lo:

$ sudo apt-get install apache2-utils 

Para Execute do CentOS/Rhel:

# dnf install httpd-tools 


Como usar o Banco Apache

Use o banco Apache com o comando AB. A sintaxe mais básica é:

$ ab hostname/ 
OBSERVAÇÃO
ab requer a barra de arco no nome do host/endereço IP.

Este comando básico não é particularmente útil sem opções adicionais, então vamos incluir alguns. O Apache Bench tem muitas opções disponíveis, mas algumas das mais úteis são:

  • -n (número): usado para especificar o número de solicitações AB deve enviar para o Apache
  • -t (tempo limite): usado para especificar (em segundos) quanto tempo a AB deve continuar enviando solicitações
  • -c (simultâneo): usado para especificar o número de solicitações simultâneas de AB para fazer

Você pode brincar com essas opções para simular tráfego mais realista para o seu servidor da web e observar como ele funciona sob várias quantidades de estresse.

$ ab -t 10 -n 10000 -C 100 nome do host/ 

Este comando comparará nosso servidor da web por 10 segundos, enviando no máximo 10.000 solicitações totais e enviará 100 dessas solicitações simultaneamente.

Considerações

Há algumas coisas a considerar ao usar o banco apache. Quando um servidor recebe milhares de solicitações HTTP de uma única fonte em questão de segundos, muitos firewalls vão interpretar isso como uma negação de ataque de serviço e tentar bloquear conexões repetidas por um tempo.

Recomendamos apenas o uso de bancada Apache em uma rede local e testar contra hosts que você controla. Ainda assim, esta não é uma simulação perfeita do tráfego real.

Ao se conectar a um servidor da web em algum lugar do mundo, os usuários terão níveis variados de latência e lúpulo (A rota que sua conexão leva ao servidor da web), que desempenham grandes papéis na velocidade percebida do seu site.
Além disso, sua máquina de teste (o sistema do qual você está executando o comando AB) pode ser um gargalo. Se você suspeitar que seu sistema não possui os recursos necessários para iniciar esse grande número de conexões, você pode verificar usando o comando superior para monitorar a CPU e o uso da memória enquanto a AB está executando seu teste.

Se você conseguir um Conexão cronometrada Erro, suas conexões provavelmente foram bloqueadas por um firewall ou o servidor Apache ficou impressionado e não conseguiu lidar com mais solicitações.

Resultados dos testes de bancada Apache

Quando o Apache Bench terminar executando seu teste, ele produzirá os resultados para o terminal e deve parecer algo assim:

Software de servidor de solicitações 882 terminado: Apache/2.4.29 Nome do host do servidor: --- Porta do servidor: 80 Caminho do documento: / Comprimento do documento: 4878 Bytes Nível de simultaneidade: 100 tempo necessário para testes: 10.008 segundos solicitações completas: 882 Solicitação falhada: 0 Total transferido: 4480560 Bytes HTML Transferido: 4302396 Solicitações de bytes por segundo: 88.13 [#/s] (média) tempo por solicitação: 1134.700 [ms] (média) tempo por solicitação: 11.347 [MS] (média, em todas as solicitações simultâneas) Taxa de transferência: 437.20 [Kbytes/s] Recebeu tempos de conexão (ms) min média [+/- sd] mediana max Connect: 77 327 1008.3 89 7240 Processamento: 87 115 43.4 101 807 Esperando: 86 112 39.1 100 604 Total: 168 442 1009.1 192 7373 Porcentagem dos pedidos atendidos dentro de um determinado tempo (ms) 50% 192 66% 202 75% 224 80% 268 90% 428 95% 1207 98% 3208 99% 7345 100% 7373 (solicitação mais longa) 


Interpretando os resultados do banco Apache

A saída acima contém todas as informações necessárias; Você só precisa saber o que essas várias métricas significam para entender os resultados. Vamos examinar todos eles nesta seção.

Resultados dos testes de bancada Apache

As primeiras linhas apenas fornecem informações gerais sobre o servidor da web. As informações úteis realmente começam com o Tempo gasto para testes linha.

Tempo gasto para testes relatórios quanto tempo o comando AB levou para concluir seu teste. Como especificamos -n 10 em nosso comando ab, essa linha obviamente relatará que o teste levou 10 segundos. Se não tivéssemos especificado um tempo limite, essa linha dirá quanto tempo levou para terminar de enviar o número especificado de solicitações. Depois de aplicar otimizações ao seu servidor da Web, você deve ver uma diminuição no tempo necessário para a conclusão dos testes (quando não estiver especificando um tempo limite).

Solicitações completas relatar quantos dos pedidos foram enviados e devolvidos com sucesso.

Solicitações com falha relatar quantos dos pedidos não conseguiram concluir. Você obviamente você vai querer ver um número muito pequeno, idealmente zero. Se esta linha relatar algumas solicitações fracassadas, poderá indicar que o servidor da Web ficou sobrecarregado e não conseguiu responder a todas as solicitações a tempo.

Total transferido e HTML transferido As linhas relatam quantos dados, em bytes, foram enviados para o servidor da web.

Pedidos por segundo é a média de quantas solicitações o servidor da web conseguiu lidar em um segundo. É útil para determinar como o seu servidor da web será executado quando muitos usuários estiverem fazendo login nele ao mesmo tempo.

Tempo por solicitação é quanto tempo, em média, foi necessário processar um pedido. Os valores são apresentados em milissegundos, portanto, em nosso exemplo, a saída do tempo era 1.1 segundos. O segundo tempo por solicitação O valor é simplesmente multiplicado pelo valor de simultaneidade.

Taxa de transferência é o quão rápido foi capaz de transferir os dados, o que não deve representar nenhum tipo de gargalo em uma rede local. Se testar a Internet, as limitações de roteamento e largura de banda podem afetar esse valor muito antes do próprio Apache.

O Tempos de conexão (MS) A seção lista os tempos de resposta para diferentes estágios das solicitações HTTP.

Tempos de conexão (ms) min média [+/- sd] mediana max Connect: 77 327 1008.3 89 7240 Processamento: 87 115 43.4 101 807 Esperando: 86 112 39.1 100 604 Total: 168 442 1009.1 192 7373 

Conectar Indica quanto tempo levou a AB para estabelecer uma conexão com o servidor da web.

Em processamento é a quantidade de tempo que o Apache gastava processando os pedidos. Como AB não pode realmente medir isso, ele apenas registra a quantidade de tempo que uma conexão está aberta após ser iniciada.

Esperando é quanto tempo o AB tem que esperar entre enviar uma solicitação e receber uma resposta do servidor da web.

Total indica o tempo total decorrido ao iniciar uma conexão com o servidor, receber uma resposta e finalmente fechar a conexão.

A última métrica do Apache Bench oferece uma visão mais precisa do tempo de resposta média do servidor da Web, classificando os tempos de conexão em percentis.

Porcentagem dos pedidos atendidos dentro de um determinado tempo (ms) 50% 192 66% 202 75% 224 80% 268 90% 428 95% 1207 98% 3208 99% 7345 100% 7373 (solicitação mais longa) 


Em nosso exemplo de saída acima, 50% das solicitações HTTP foram tratadas e fechadas em apenas 192 ms ou menos. Este relatório também indica que as respostas que levam 7 segundos (existem apenas dois deles) são outliers, fazendo o tempos de conexão relatar menos alarmante. 90% de nossas solicitações HTTP foram tratadas em menos de meio segundo.

Conclusão

Neste artigo, vimos como instalar o Apache Bench e usá -lo para testar o desempenho de um servidor da Web. Também aprendemos a interpretar a saída do Banco Apache, permitindo -nos determinar onde estão os gargalos. Depois de otimizar ainda mais seu servidor da web, execute o Apache Bench novamente e espere ver melhores resultados de desempenho, se houve realmente melhorias feitas.

Tutoriais do Linux relacionados:

  • Teste de referência de unidade USB no Linux
  • Como comparar o desempenho do disco no Linux
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Coisas para instalar no Ubuntu 20.04
  • Como trabalhar com a API de Rest WooCommerce com Python
  • Mastering Bash Script Loops
  • Comparando Linux Apache Prefork vs Worker MPMS
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Analisador Linux Apache Log
  • Com que frequência você tem que reiniciar seu servidor Linux?