Drupalize.Me

 A Drupalize.Me tutorial

Siege é uma ferramenta de teste de carga útil para adicionar ao seu kit de ferramentas de teste de desempenho. Do site:

Siege é um utilitário de teste de carga HTTP e benchmarking. Ele foi projetado para permitir que os desenvolvedores da web Medam seu código sob coação, para ver como ele resistirá à carga na internet. Siege suporta autenticação básica, cookies, HTTP, HTTPS e protocolos FTP. Ele permite que seu usuário atinja um servidor com um número configurável de clientes simulados. Esses clientes colocam o servidor “sob cerco.”

o teste de carregamento é útil para testar o desempenho do seu site e a infraestrutura em que ele é executado. Não há nada pior do que ter uma página em seu site postada em um site popular e assistir seu site desmoronar sob a carga. Siege pode simular atividade em seu site, e você pode então usar seu site a partir do seu navegador como faria normalmente, enquanto seu cerco está em execução e realmente ter uma idéia de como seu site responde sob carga.

esta postagem do blog cobrirá a instalação do Siege no OS X e Linux e a execução de um teste de carga básico com o Siege.

Pressupostos

Este tutorial assume que você está confortável usando a linha de comando para emitir comandos básicos e tem um site instalado em sua máquina local que você pode testar.

Instalando o Siege

baixe

Primeiro, vá para https://www.joedog.org/siege-home/ e encontre o URL para um arquivo da versão mais recente do aplicativo Siege. No momento da escrita, isso é Siege Versão 3.1.0.

salvar

agora abra o aplicativo Terminal, salvaremos este arquivo em nosso diretório de Downloads.

No OS X
cd ~/Downloadscurl -O http://download.joedog.org/siege/siege-3.1.0.tar.gz
No Linux
cd ~/Downloadswget http://download.joedog.org/siege/siege-3.1.0.tar.gz

Extraia o arquivo

tar -xvf siege-3.1.0.tar.gz

Altere para o diretório de arquivo

cd siege-3.1.0

Configure e build it!

./configuremakemake install

leia os documentos

se precisar, consulte as instruções de instalação completas.

verificar versão instalada

ótimo, agora podemos testar que temos o siege instalado corretamente, vamos verificar a versão que instalamos em nosso sistema.

siege -VSIEGE 3.1.0

Hooray, temos a versão 3.1.0 de cerco instalado em nosso sistema, vamos começar a alguns testes!

teste de carga com Siege

vou usar um site Drupal que instalei localmente para carregar o teste. Para iniciar uma base de cerco, execute o seguinte comando usando o site desejado URL (estou usando http://drupal7.local):

siege http://drupal7.local

Isto irá iniciar o cerco com as opções padrão, que é de 15 usuários simultâneos acessando o seu site da página de índice, até parar o cerco, pressionando control+c.

Isto irá fornecer o cerco estatísticas para o teste:

Lifting the server siege... done.Transactions: 385 hitsAvailability: 100.00 %Elapsed time: 76.02 secsData transferred: 0.84 MBResponse time: 2.40 secsTransaction rate: 5.06 trans/secThroughput: 0.01 MB/secConcurrency: 12.18Successful transactions: 385Failed transactions: 0Longest transaction: 5.73Shortest transaction: 0.31

interpretando os resultados de um teste de carga

agora, em primeiro lugar, meus resultados não são tão impressionantes, pois estou executando isso em uma máquina virtual de baixa potência em minha máquina local, se você estiver testando sites de produção de carga, você deve esperar tempos de resposta muito mais rápidos.

terminologia

transações é o número de acessos do servidor. No exemplo, 385 transações.

o tempo decorrido é a duração de todo o teste de cerco. Isso é medido desde o momento em que o usuário invoca o siege até que o último usuário simulado conclua suas transações. Mostrado acima, o teste levou 76,02 segundos para ser concluído.

os dados transferidos são a soma dos dados transferidos para cada usuário Simulado do siege. Inclui as informações do cabeçalho, bem como o conteúdo. Como inclui informações de cabeçalho, o número relatado pelo siege será maior do que o número relatado pelo servidor. No modo internet, que atinge URLs aleatórios em um arquivo de configuração, espera-se que esse número varie de execução para execução.

tempo de resposta é o tempo médio que levou para responder às solicitações de cada usuário simulado.

taxa de transação é o número médio de transações que o servidor foi capaz de lidar por segundo, em poucas palavras: transações divididas por tempo decorrido.

a taxa de transferência é o número médio de bytes transferidos a cada segundo do servidor para todos os usuários simulados.A simultaneidade é o número médio de conexões simultâneas, um número que aumenta à medida que o desempenho do servidor diminui.

transações bem-sucedidas é o número de vezes que o servidor retornou um código menor que 400. Consequentemente, os redirecionamentos são considerados transações bem-sucedidas.

testando várias páginas

para testar vários URLs, podemos usar um arquivo de URL para fornecer uma lista de URLs para testar durante nosso cerco. Crie um arquivo de texto chamado urls.txt, e adicione os URLs que você gostaria de testar (um por linha), estou criando o meu no diretório inicial do meu usuário em ~/urls.txt

Cerco entende o seguinte formato de URL:

# Comments proceeded by a hashhttp://drupal7.local/http://drupal7.local/node/2http://drupal7.local/node/7http://drupal7.local/rest/node

Agora você pode iniciar o cerco e fornecer o caminho para o arquivo que você criou, para iniciar um teste contra os URLs:

siege -f /path/to/your/urls.txt

modo Internet

o modo Internet é outra opção interessante no Siege, na qual cada um dos URLs que um usuário acessa no teste é randomizado. Isso imita uma situação da vida real na qual você não pode prever qual URL uma pessoa visitará em seu site. A outra implicação desta opção é que não há garantia de que cada página no arquivo de texto URLs será atingida, devido à randomização.

para iniciar um cerco no modo internet, use o seguinte comando, passando novamente no caminho de seus urls.txt:

siege -if /path/to/your/urls.txt

Aumentar o Número de Usuários Simultâneos

Aumentar o número de usuários simultâneos é feito com o sinalizador-c, passando o número de usuários simultâneos do que você gostaria de testar com:

siege -if /path/to/your/urls.txt -c 500
' -c NUM '' –concurrent=NUM '

usuários Simultâneos (requer argumento): Esta opção permite que o usuário stress do servidor web com NUM número de usuários simulados. O valor é limitado apenas pelos recursos de computação disponíveis, mas realisticamente algumas centenas de usuários simulados é igual a muitas vezes esse número nas sessões reais do Usuário. O número selecionado representa o número de transações que seu servidor está lidando. Não representa o número de sessões simultâneas. Lembre-se, os usuários reais levam algum tempo para realmente ler a página que solicitaram.

também É útil para usar o sinalizador-d que permite escalonar as transações:

siege -if /path/to/your/urls.txt -c 500 -d 3
' -d NUM '' –delay=NUM 'Each siege simulated user is delayed for a random number of seconds between one and NUM. If you are benchmarking performance, it is recommended that you use a 1 second delay ( -d1 ). The default value is three (3 ). This delay allows for the transactions to stagger rather then to allow them to pound the server in waves.

Cerco tem muito mais a oferecer, e eu peço que você leia a documentação completa para obter um entendimento mais completo, mas espero que com esse tutorial você vai chegar no seu caminho.

Se você precisa de Cerco páginas que necessitem de autenticação, como um Usuário Drupal, confira esse auxiliar de script: https://github.com/msonnabaum/DrupalSiege

a Desinstalação do Cerco e Limpeza

Se você decidir que você não quer ter Cerco instalado no seu sistema por mais tempo, primeiro desinstale-o e, em seguida, remover o diretório fonte, e arquivos:

Altere para o diretório que você baixou Cerco para:

cd ~/Downloads/siege-3.1.0/make uninstall

Agora você pode remover com segurança a pasta de origem, e o arquivo em:

~/Downloads/siege-3.1.0~/Downloads/siege.-3.1.0.tar.gz

muito barulho sobre o desempenho

se o seu site parece que está tendo um desempenho ruim durante o cerco, você vai querer descobrir o porquê! Algumas coisas para verificar:

  • carga do servidor
  • você implementou algum cache?

Deixe uma resposta

O seu endereço de email não será publicado.