Siege - Teste de stress para servidores Web
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 04 de janeiro de 2013
Siege é uma ferramente para teste de carga e avaliação de desempenho para os protocolos http e https. Esta ferramenta permite avaliar o desempenho de aplicativos ou servidores web. O aplicativo simula o acesso a determinados recursos web com um número configurável de usuários. A palavra "siege" significa um cerco militar ou bloqueio a uma cidade. Os resultados obtidos incluem o tempo decorrido, total de dados transferidos, a taxa de transferência, concorrência e o número de vezes em que a conexão retornou com código OK. Estas medidas são quantificadas e relatadas ao final de cada execução.
O aplicativo possui três modos de operação:
- Regressão (quando invocado por bombardeio (bombardment)
- Simulação da Internet
- Força bruta
Exemplos
siege -c 10 http://www.acme.com
A diretiva "-c" indica o número de usuários concorrentes que o aplicativo deve simular.
siege -i http://www.acme.com
A diretiva "-i" gera o comportamento de vários usuários acessando aleatoriamente as urls lidas a partir do arquivo chamado urls.txt.
siege -r 100 http://www.acme.com
A diretiva "-r" indica quantas vezes o comando siege deve ser repetido.
[... várias linhas suprimidas ...] HTTP/1.1 200 3.49 secs: 16695 bytes ==> / HTTP/1.1 200 2.48 secs: 15757 bytes ==> / HTTP/1.1 200 6.90 secs: 16725 bytes ==> / HTTP/1.1 200 1.67 secs: 16642 bytes ==> / HTTP/1.1 200 1.15 secs: 15846 bytes ==> / done. Transactions: 1500 hits Availability: 100.00 % Elapsed time: 264.56 secs Data transferred: 23.08 MB Response time: 1.97 secs Transaction rate: 5.67 trans/sec Throughput: 0.09 MB/sec Concurrency: 11.14 Successful transactions: 1500 Failed transactions: 0 Longest transaction: 12.60 Shortest transaction: 0.92
Como podemos ver, este site está bem ajustado. O tempo médio de carregamento das páginas foi de 1.97 segundos, bem abaixo dos 5s que é o máximo que um usuário comum em geral espera. Todas as requisições foram completadas com sucesso.
Para instalar, em sistemas Debian GNU/Linux e derivados, digitar, como root, o seguinte comando:
apt-get install siege
Referências
- Man page comando siege
- 15 Greatest Open Source Terminal Applications Of 2012