ensaio de carga ab

alguém pode por favor explicar-me o processo de Como posso carregar o meu site usando apache bench tool (ab)?

quero saber o seguinte:

Quantas pessoas por minuto o site pode lidar?

Por favor, explica-me os comandos que devo executar para resolver isto.

Tentei todos os tutoriais e são confusos.

Author: wpp, 2012-10-04

4 answers

A ferramenta apache benchmark é muito básica, e embora lhe dê uma ideia sólida de algum desempenho, {[[11]}é uma má ideia apenas depender dela se você planeja ter o seu local exposto a stress grave na produção.

Dito isto, aqui estão os parâmetros mais comuns e mais simples:

-c: ("Concurency"). Indica quantos clientes (pessoas/utilizadores) irão atingir o site ao mesmo tempo. Enquanto ab corre, haverá clientes a bater no site. Isto é o que realmente decide a quantidade de estresse seu site vai sofrer durante a referência.

-n: indica quantos pedidos vão ser feitos. Isto apenas decide o comprimento da referência. Um valor elevado -n com um valor -c que o seu servidor possa suportar é uma boa ideia para garantir que as coisas não se quebram sob stress sustentado: não é o mesmo suportar stress durante 5 segundos do que durante 5 horas.

-k: Isto faz os navegadores de funcionalidade "KeepAlive" por natureza. Você não precisa passar um valor para -k como ele "booleano" (o que significa: ele indica que você deseja para o seu teste para usar o cabeçalho Keep Alive de HTTP e manter a conexão). Uma vez que os navegadores fazem isso e você provavelmente quer simular o estresse e fluxo que o seu site terá a partir de navegadores, é recomendado que você faça uma referência com isso.

O argumento final é simplesmente o anfitrião. Por omissão, irá carregar em http: / / protocol se não indicar ele.

ab -k -c 350 -n 20000 example.com/
Ao emitir o comando acima, você vai bater em http://example.com com 350 ligações simultâneas até serem atendidos 20 mil pedidos. Será feito usando o cabeçalho keep alive.

Depois do processo terminar os 20 mil pedidos, você receberá feedback sobre as estatísticas. Isto irá dizer - lhe o quão bem o site realizado sob o stress que você colocá-lo ao usar os parâmetros acima.

Por descobrir com quantas pessoas o site pode lidar ao mesmo tempo, basta ver se os tempos de resposta (meios, min e max tempos de resposta, pedidos falhados, etc) são números que o seu site pode aceitar (diferentes sites podem desejar velocidades diferentes). Você pode executar a ferramenta com valores diferentes-c até que você acertar o ponto onde você diz "Se Eu aumentar, ele começa a obter pedidos falhados e ele quebra". Dependendo do seu site, você espera um número médio de pedidos por minuto. Isso varia tanto, você não será capaz de simular isso com ab. No entanto, pense sobre isso desta forma: se o seu usuário médio vai estar batendo 5 pedidos por minuto e o tempo de resposta médio que você acha válido é de 2 segundos, isso significa que 10 segundos de um minuto 1 usuário estará em Solicitações, o que significa apenas 1/6 do tempo que estará atingindo o site. Isto também significa que se você tiver 6 usuários batendo no site com ab simultaneamente, você provavelmente terá 36 usuários em simulação, mesmo que o seu nível de concorrência (-c) é apenas 6.

Isto depende de o comportamento que você espera de seus usuários usando o site, mas você pode obtê-lo de "eu espero que o meu usuário para bater x pedidos por minuto e eu considero um tempo de resposta médio válido se for 2 segundos". Em seguida, basta modificar o seu nível-c até atingir 2 segundos de tempo de resposta médio (mas certifique-se de que o tempo de resposta máximo e o stddev ainda são válidos) e ver quão grande você pode fazer-C.

([10]} espero ter explicado isto claramente:) boa sorte
 260
Author: Mamsaac, 2014-11-11 15:38:00
Por favor, explica-me os comandos que devo executar para resolver isto.

O teste mais simples que você pode fazer é realizar 1000 pedidos, 10 de cada vez (que aproximadamente simula 10 usuários simultâneos obtendo 100 páginas cada - ao longo do comprimento do teste).

ab -n 1000 -c 10 -k -H "Accept-Encoding: gzip, deflate" http://www.example.com/

-n 1000 é o número de pedidos a fazer.

-c 10 diz à AB para fazer 10 pedidos de cada vez, em vez de 1 pedido de cada vez, para simular melhor os visitantes concorrentes (vs. sequencial) publico).

-k envia o cabeçalho KeepAlive, que pede ao servidor web para não desligar a ligação após cada pedido ser feito, mas para continuar a reutilizá-lo.

Também estou a enviar o cabeçalho extra Accept-Encoding: gzip, deflate porque o mod_ deflate é quase sempre usado para comprimir a saída de texto/html 25%-75% - os efeitos dos quais não devem ser descartados devido ao seu impacto no desempenho global do servidor web (isto é, pode transferir 2x os dados na mesma quantidade de tempo, etc).

Resultados:

Benchmarking www.example.com (be patient)
Completed 100 requests
...
Finished 1000 requests


Server Software:        Apache/2.4.10
Server Hostname:        www.example.com
Server Port:            80

Document Path:          /
Document Length:        428 bytes

Concurrency Level:      10
Time taken for tests:   1.420 seconds
Complete requests:      1000
Failed requests:        0
Keep-Alive requests:    995
Total transferred:      723778 bytes
HTML transferred:       428000 bytes
Requests per second:    704.23 [#/sec] (mean)
Time per request:       14.200 [ms] (mean)
Time per request:       1.420 [ms] (mean, across all concurrent requests)
Transfer rate:          497.76 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.1      0       1
Processing:     5   14   7.5     12      77
Waiting:        5   14   7.5     12      77
Total:          5   14   7.5     12      77

Percentage of the requests served within a certain time (ms)
  50%     12
  66%     14
  75%     15
  80%     16
  90%     24
  95%     29
  98%     36
  99%     41
 100%     77 (longest request)

Para a interpretação mais simples, ignore tudo menos esta linha:

Requests per second:    704.23 [#/sec] (mean)
Multiplica isso por 60, e terás os teus pedidos por minuto.

Para obter resultados do mundo real, você vai querer testar o Wordpress em vez de algum HTML ou índice estático.php file porque você precisa saber como tudo funciona em conjunto: incluindo o código PHP complexo, e múltiplas consultas MySQL...

Por exemplo, aqui estão os resultados do teste de uma nova instalação de Wordpress no mesmo sistema e ambiente WAMP (estou usando Wampdesenvolver, mas também há Xampp, WampServer, e outros)...
Requests per second:    18.68 [#/sec] (mean)

Isso é 37x mais lento agora!

Após o teste de carga, há um número de coisas que você pode fazer para melhorar o desempenho global (Solicitações Por Segundo), e também tornar o servidor web mais estável em maior carga de trabalho (por exemplo, aumentando o -n e -c tende a falhar Apache), que você pode ler sobre toma.

Carregar o teste Apache com AB (banco Apache)

 54
Author: rightstuff, 2014-09-09 19:15:01

Passos para configurar o banco Apache (AB) no windows (IMO - recomendado).

Passo 1-Instalar O Xampp.
Passo 2-abrir CMD.
Passo 3-Ir para o destino do banco apache (cd C:\xampp\apache\bin) a partir do CMD
Passo 4-colar o comando (ab -n 100 -c 10 -k -H "Accept-Encoding: gzip, deflate" http://localhost:yourport/)
Passo 5-espera. Seu feito

 6
Author: Charitha Goonewardena, 2017-03-23 10:33:10

Testar a API usando apenas ab não é suficiente. No entanto, eu acho que é uma grande ferramenta para lhe dar uma idéia básica de como o seu site é performant.

Se quiser usar o comando ab para testar vários parâmetros da API, com dados diferentes, todos ao mesmo tempo em segundo plano, precisa de usar o comando "nohup". Ele executa qualquer comando mesmo quando você fecha o terminal.

Eu escrevi um script simples que automatiza todo o processo, sinta-se livre para usá-lo: http://blog.ikvasnica.com/entry/load-test-multiple-api-endpoints-concurrently-use-this-simple-shell-script

 2
Author: Ivan Kvasnica, 2016-10-27 10:36:34