Erro de teste do Apache Bench no OS X: “apr_socket_recv: Conexão redefinida pelo peer (54)”

51

Atualizei meu MacBook Pro 13 "para o Lion há algumas semanas. Acabei de descobrir que o Apache Bench (apache2.2.19) não está funcionando. Ele sempre mostra esse erro, não importa o que:

apr_socket_recv: Connection reset by peer (54)

Eu também fiz uma instalação limpa no meu Mac Mini e ele produziu o mesmo erro.

Como posso corrigir isso?

    
por ben 16.08.2011 / 13:14

6 respostas

62

Observe que, se você usar -r com o Apache Bench, ele não sairá com erros.

Na documentação :

-r
Don't exit on socket receive errors.

    
por 14.09.2011 / 17:54
47

Isso se deve a um bug no software Apache que é fornecido com o Lion. Uma versão mais recente do Apache (beta) corrige o problema. Para corrigir ab, aqui estão os passos:

  1. Baixe a versão mais recente do Apache

    $ wget http://apache.mirrors.pair.com//httpd/httpd-2.3.16-beta.tar.bz2
    

Se a versão 2.3.16 não estiver disponível, vá para link e obtenha as últimas

  1. Instale o pcre (você precisa preparar para isso)

    $ brew install pcre
    
  2. Compile o Apache

    $ tar xzvf httpd-2.3.16-beta.tar.bz2
    $ cd httpd-2.3.16-beta
    $ ./configure
    $ make
    
  3. Sobrescrever o existente ab com o recém-construído

    $ sudo cp support/ab /usr/sbin
    
por 15.12.2011 / 23:01
5

Usando o método de atualização de ab pelo homebrew em este link funcionou para mim.

brew install 'https://raw.github.com/simonair/homebrew-dupes/e5177ef4fc82ae5246842e5a544124722c9e975b/ab.rb'
brew test ab
    
por 16.07.2012 / 19:50
2

Eu tive o mesmo erro com o Mountain Lion ab v2.3, e estava quase pronto para instalar o brew e a versão mais recente do ab como instruído por uma das respostas acima. Antes de finalmente ir embora, tentei apenas adicionar a barra à direita .

user$ ab http://dl.cubrid.org
ab: invalid URL
Usage: ab [options] [http[s]://]hostname[:port]/path

Na mensagem acima, preste atenção ao formato necessário do URL de entrada. Os componentes opcionais são marcados com colchetes, mas observe que a parte / path parece ser não opcional. Então eu assumi que, se eu estivesse testando o domínio raiz, eu deveria pelo menos adicionar a barra à direita , o que realmente funcionou! Espero que isso ajude você também.

user$ ab dl.cubrid.org/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking dl.cubrid.org (be patient).....done


Server Software:        
Server Hostname:        dl.cubrid.org
Server Port:            80

Document Path:          /
Document Length:        13437 bytes

Concurrency Level:      1
Time taken for tests:   0.863 seconds
Complete requests:      1
Failed requests:        0
Write errors:           0
Total transferred:      13606 bytes
HTML transferred:       13437 bytes
Requests per second:    1.16 [#/sec] (mean)
Time per request:       862.778 [ms] (mean)
Time per request:       862.778 [ms] (mean, across all concurrent requests)
Transfer rate:          15.40 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:      207  207   0.0    207     207
Processing:   655  655   0.0    655     655
Waiting:      234  234   0.0    234     234
Total:        862  862   0.0    862     862
    
por 19.11.2012 / 02:02
1

Você tentou usar: 127.0.0.1 em vez de localhost?

Além disso, meu ab falha se eu não escrever url com http:// na frente.

    
por 20.07.2012 / 16:33
0

Algumas coisas para testar:

  • você pode tentar desativar o firewall vendo se isso funciona?
  • ativar o compartilhamento na Web e testar o localhost / (verifique se funciona em um navegador primeiro)

Se nenhum desses trabalhos puder abrir um terminal e

$ sudo opensnoop

em seguida, execute o banco de apache e poste a saída do terminal opensnoop na questão. Se nada disso funcionar, você pode tentar instalar o macports e depois instalar o apache a partir daí e ver se isso funciona como uma solução (meio lame).

My Air está no leão, mas a versão do apache é diferente (houve uma atualização recentemente, você já instalou isso?). Consegui verificar se o ab funciona para mim:

$ ab -V
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
$ uname -a
Darwin air.local 11.1.0 Darwin Kernel Version 11.1.0: Tue Jul 26 16:07:11 PDT 2011; root:xnu-1699.22.81~1/RELEASE_X86_64 x86_64
$ ab google.com/ 
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking google.com (be patient).....done


Server Software:        gws
Server Hostname:        google.com
Server Port:            80

Document Path:          /
Document Length:        219 bytes

Concurrency Level:      1
Time taken for tests:   4.130 seconds
Complete requests:      1
Failed requests:        0
Write errors:           0
Non-2xx responses:      1
Total transferred:      511 bytes
HTML transferred:       219 bytes
Requests per second:    0.24 [#/sec] (mean)
Time per request:       4130.343 [ms] (mean)
Time per request:       4130.343 [ms] (mean, across all concurrent requests)
Transfer rate:          0.12 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:     4119 4119   0.0   4119    4119
Processing:    11   11   0.0     11      11
Waiting:       11   11   0.0     11      11
Total:       4130 4130   0.0   4130    4130
    
por 26.08.2011 / 03:48