Como posso reproduzir os logs de acesso do Apache nos meus servidores para fazer testes de carga no mundo real?


13

Eu olhei para Ferramentas para testar servidores HTTP de carga? mas não consegui ver como reproduzir meus próprios logs existentes em nenhuma dessas ferramentas. Eu tenho um bug que ocorre apenas sob determinadas operações de carregamento que meu material de teste JMeter e AB existente não pode reproduzir.

Quero simplesmente dar à ferramenta access_logs e reproduzi-la, seja mais rápida ou com a mesma velocidade.

Respostas:


14

Você pode usar o componente Access Log Sampler do Jmeter .

Há um breve tutorial sobre o uso deste PDF .


3
Eu tentei isso e, obviamente, devo ser um idiota porque não consegui fazê-lo funcionar bem. Acabei usando o script python no insom.me.uk/z/2009/02/...
Stewart Robinson

Como o link original está inoperante, eis o arquivo
Walty Yeung

Ok, caso outras pessoas encontrem isso, este script tem um problema com a segmentação. Um ser necessário substituir threadlib com threadinglib ( stackoverflow.com/questions/19558401/... )
Walty Yeung

1

Supondo que tudo o que você tem em seu log de acesso são solicitações GET, e você não se importa com as solicitações agrupadas no limite de resolução dos carimbos de data e hora nos logs, cerca de 10 linhas de $ SCRIPTING_LANGUAGE devem fazer o truque. POSTs, cookies, autenticação HTTP e tempo mais sutil são um exercício muito mais interessante.


-1

Isso exigiria um programa, como um aplicativo de teste de carga, que suporte a repetição de log http. Um desses aplicativos é o HTTPerf ( https://github.com/httperf/httperf ).

Um artigo de instruções está em https://www.igvita.com/2008/09/30/load-testing-with-log-replay/


1
Essa seria uma resposta muito melhor se incluísse uma explicação real. Simplesmente vincular a um site externo é desencorajado aqui, pois os sites podem e geralmente desaparecem.
Michael Hampton

-2

Eu faria algo um pouco diferente. Entendo sua pergunta, mas se você estiver olhando para carregar seu servidor, talvez queira procurar na ferramenta 'ab'. Ele vem com a maioria das instalações do apache. Corrida:

ab -c 15 -n 1000 http://site.name/

Realizará 1000 solicitações, fazendo 15 solicitações por vez. Sei que isso não é exatamente o que você está procurando e só consultará o endereço que você fornecer. Se você precisar carregar, é uma maneira rápida e simples de fazê-lo, e fornecerá algumas estatísticas potencialmente muito úteis para depuração.


Se a pergunta diz "Eu tenho um bug que o teste [...] AB não pode [...] reproduzir", por que você sugere o uso do AB?
Womble

Eu senti falta da AB listada nas ferramentas. : p Gostaria de dizer que foi uma edição, mas sinceramente não tenho certeza.
314 TrueDuality

-2

Por que você não desenvolve o seu próprio? Obtenha o log; analisá-lo. Obtenha o URI. Faça chamada de onda. Você pode escrever isso em php e executá-lo no apache por simultaneidade.

Se seus logs estão no formato gz, faça um zcat, use o recurso readlog. Isso dará URL. Agora use phpCurl para acessar a URL. Para maior rendimento, execute-o no apache (use ab para carregá-lo).


1
Então eu vou ter dois aplicativos para carregar o teste. Isso seria distorcido.
Stewart Robinson
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.