Siege é um teste de regressão de código aberto e utilitário de benchmark. Ele pode testar a resistência de um único URL com um número de usuários simulados definido pelo usuário ou pode ler muitos URLs na memória e estressá-los simultaneamente. O programa informa o número total de acessos registrados, bytes transferidos, tempo de resposta, simultaneidade e status de retorno. Siege suporta protocolos HTTP/1.0 e 1.1, diretivas GET e POST, cookies, registro de transações e autenticação básica. Seus recursos são configuráveis por usuário.
A maioria dos recursos são configuráveis com opções de linha de comando que também incluem valores padrão para minimizar a complexidade da invocação do programa. O Siege permite que você sobrecarregue um servidor web com n número de usuários t número de vezes, onde n e t são definidos pelo usuário. Ele registra o tempo de duração do teste, bem como a duração de cada transação. Ele informa o número de transações, tempo decorrido, bytes transferidos, tempo de resposta, taxa de transação, simultaneidade e o número de vezes que o servidor respondeu OK, ou seja, o código de status 200.
O Siege foi projetado e implementado por Jeffrey Fulmer em sua posição como Webmaster da Armstrong World Industries. Foi modelado em parte após o tortura.pl de Lincoln Stein e seus relatórios de dados são quase idênticos. Mas tortura.pl não permite enfatizar muitos URLs simultaneamente; dessa necessidade nasceu o cerco....
Quando um servidor HTTP é atingido pelo programa, ele está "sob cerco".
Siege foi escrito tanto para desenvolvedores web quanto para administradores de sistemas web. Ele permite que esses indivíduos testem seus programas e sistemas sob pressão. Como profissional da web, você é responsável pela integridade do seu produto, mas não tem controle sobre quem o acessa. Picos de tráfego podem ocorrer a qualquer momento. Como saber se você está preparado?
O Siege permitirá que você coloque esses programas sob coação, para permitir que você entenda melhor a carga que eles podem suportar. Você dormirá melhor sabendo que seu site pode suportar o peso de 400 transações simultâneas se atualmente atingir o pico de 250.
Uma transação é caracterizada pelo servidor abrindo um soquete para o cliente, processando uma solicitação, servindo dados pela rede e fechando o soquete após a conclusão. É importante notar que os usuários HUMANOS da Internet demoram para digerir os dados que chegam até eles. Os usuários do cerco não. Na prática, descobri que 400 usuários de cerco simultâneos equivalem a pelo menos cinco vezes esse valor em sessões reais na Internet. É por isso que o cerco permite que você defina um atraso ( --delay=NUM ). Quando definido, cada usuário do cerco dorme por um número aleatório de segundos entre 1 e NUM. Por meio dos logs do servidor, você poderá obter a quantidade média de tempo gasto em uma página. É recomendável que você use esse número para o atraso ao simular atividade na Internet.
A versão mais recente do cerco pode ser obtida via FTP anônimo: http://download.joedog.org/siege/siege-latest.tar.gz
O repositório de origem está localizado no GitHub: git clone https://github.com/JoeDog/siege.git
Você pode visualizar em seu navegador aqui: https://github.com/JoeDog/siege
Atualizações e anúncios são distribuídos via JoeDog: http://www.joedog.org/
O Siege foi construído com o autoconf GNU. Se você está familiarizado com o software GNU, então você deve se sentir confortável instalando o siege. Consulte o arquivo INSTALL para obter mais detalhes.
Para ativar o suporte HTTPS, você deve instalar o openssl e o openssl-devel em seu sistema.
Para ativar a codificação de transferência gzip, você precisará do zlib e do zlib-devel instalados em seu sistema.
Todos os pré-requisitos devem ser instalados em tempo de compilação. Se você adicionar as bibliotecas após a compilação do siege, você terá que executar ./configure, make e make install novamente.
Os pré-requisitos de cerco não são dependências. Se essas bibliotecas não estiverem presentes, o aplicativo ainda será compilado e funcionará. Simplesmente não conterá essas funcionalidades.
A documentação está disponível nas páginas man siege(1) laysiege(1) Um manual html está incluído nesta distribuição: manual.html
A documentação completa para o cerco pode ser encontrada em www.joedog.org
Consulte o arquivo COPYING para obter informações completas sobre a licença.
Copyright (C) 2000-2023 por Jeffrey Fulmer [email protected]
É concedida permissão a qualquer pessoa para fazer ou distribuir cópias literais deste documento conforme recebido, em qualquer meio, desde que o aviso de direitos autorais e este aviso de permissão sejam preservados, dando assim ao destinatário permissão para redistribuir, por sua vez.
É concedida permissão para distribuir versões modificadas deste documento, ou de partes dele, sob as condições acima, desde que também contenham avisos proeminentes informando quem as alterou pela última vez.
Além disso, como exceção especial, os detentores dos direitos autorais dão permissão para vincular o código de partes deste programa à biblioteca OpenSSL sob certas condições, conforme descrito em cada arquivo fonte individual, e distribuir combinações vinculadas incluindo os dois.
Você deve obedecer à Licença Pública Geral GNU em todos os aspectos para todos os códigos usados, exceto OpenSSL. Se você modificar arquivos com esta exceção, poderá estender essa exceção à sua versão do(s) arquivo(s), mas não será obrigado a fazê-lo.
Se você não quiser fazer isso, exclua esta declaração de exceção da sua versão. Se você excluir esta declaração de exceção de todos os arquivos de origem do programa, exclua-a também aqui.