Errore test banco Apache su OS X: "apr_socket_recv: connessione ripristinata dal peer (54)"


55

Ho aggiornato il mio MacBook Pro 13 "a Lion alcune settimane fa. Ho appena scoperto che Apache Bench (apache2.2.19) non funziona. Mostra sempre questo errore, non importa quale:

apr_socket_recv: connessione ripristinata dal peer (54)

Ho anche fatto un'installazione pulita sul mio Mac Mini e ha prodotto lo stesso errore.

Come posso risolvere questo problema?


Anch'io sto ricevendo questi .. Li ottengo mentre testano un piccolo server Web Go e con un server Python Gevent.
Justin,

Risposte:


65

Si noti che se si utilizza -rcon Apache Bench, non uscirà in caso di errori.

Dalla documentazione :

-r
Non uscire dagli errori di ricezione socket.


11
Dovrebbe, tranne che è sbagliato. Ho appena provato a correre: ab -n 200 -c 20 -r http://localhoste ho ottenuto (dio non voglia un commento ha nuove righe!) Test aborted after 10 failures apr_socket_connect(): Operation already in progress (37) Total of 4 requests completed
umassthrower

3
sfortunatamente esce ancora
DataGreed

Ha funzionato per me su OS X 10.9
Willem,

47

Ciò è dovuto a un bug nel software Apache in bundle con Lion. Una versione più recente di Apache (beta) risolve il problema. Per correggere un ab, ecco i passaggi:

  1. Scarica l'ultima versione di Apache

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

Se la 2.3.16 non è disponibile, vai su http://apache.mirrors.pair.com/httpd e ottieni le ultime novità

  1. Installa pcre (devi preparare birra per questo)

    $ brew install pcre
    
  2. Costruisci Apache

    $ tar xzvf httpd-2.3.16-beta.tar.bz2
    $ cd httpd-2.3.16-beta
    $ ./configure
    $ make
    
  3. Sovrascrivi l'ab esistente con quello di nuova costruzione

    $ sudo cp support/ab /usr/sbin
    

quando makehttp ottengo: Simboli non definiti: "_apr_file_link", referenziato da: _post_rotate in rotatelogs.o ld: simboli non trovati coll2: ld restituito 1 stato di uscita make [2]: *** [rotatelogs] Errore 1 make [1]: *** [all-recursive] Errore 1 make: *** [all-recursive] Errore 1 Qualche consiglio su come risolverlo?
Jonathan,

È ancora un problema in OSX 10.8.2?
Chris Wagner,

3
sto analizzando un'app helloworld di node.js. All'inizio stavo ricevendo un Connection reset by peer (54)per qualsiasi abbenchmarking. Quindi, dopo aver fatto la correzione sopra, ho potuto fare ab -n 100 -c 100. Allora potrei fare ab -n 200 -c 100. Potrei fare ab -n 200 -c 150... Quando prendo -csopra -c 200, a volte esegue e talvolta genera un Connection Reset by Peer (54)errore. È non deterministico. Cosa fare?
Rakib,

3
Durante l'esecuzione ./configure, dare un'occhiata a questo post se si esegue in configure: error: C compiler cannot create executables: stackoverflow.com/a/11712497/599391
Chiubaka

5

Utilizzando il metodo di aggiornamento di ab tramite homebrew a questo link ha funzionato per me.

brew install 'https://raw.github.com/simonair/homebrew-dupes/e5177ef4fc82ae5246842e5a544124722c9e975b/ab.rb'
brew test ab

2
Benvenuto in Super User! Sebbene ciò possa teoricamente rispondere alla domanda, sarebbe preferibile includere qui le parti essenziali della risposta e fornire il collegamento come riferimento.
slhck,

Ricevo:Error: Download failed: http://www.apache.org/dist/httpd/httpd-2.4.2.tar.bz2
Benjamin Crouzier il

@pinouchon anche se la sceneggiatura è ora più gestita dall'autore, ecco un nuovo link funzionante: raw.githubusercontent.com/simonair/homebrew-dupes/… (tipo:brew install "https://raw.githubusercontent.com/simonair/homebrew-dupes/e26f111d450d1a030515e1dde4e1dc4693efa78d/ab.rb")
Matt3o12,

Errore: ab: metodo indefinito `sha1 'per Formulary :: FormulaNamespacebc6d3f6af42f9cfa51e2e726dcc9ff30 :: Ab: Class @ Matt3o12
Mark Ramotowski

4

Hai provato a usare: 127.0.0.1invece di localhost?

Inoltre il mio ab fallisce se non scrivo l'URL con http://in primo piano.


2

Ho avuto lo stesso errore con Mountain Lion ab v2.3 ed ero quasi pronto per installare brew e l'ultima versione di ab come indicato da una delle risposte sopra. Prima di procedere in quel modo ho provato ad aggiungere la barra finale .

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

Nel messaggio sopra, prestare attenzione al formato richiesto dell'URL di input. I componenti opzionali sono contrassegnati da parentesi quadre, ma si noti che la parte / percorso sembra non essere facoltativa. Quindi ho pensato che se avessi testato il dominio di root, avrei dovuto aggiungere almeno la barra finale , che ha davvero funzionato! Spero che questo aiuti anche a te.

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

0

Alcune cose da testare:

  • puoi provare a disabilitare il firewall per vedere se funziona?
  • abilitare la condivisione Web e testare localhost / (assicurarsi che funzioni prima in un browser)

Se nessuna di queste funzioni è possibile aprire un terminale e

$ sudo opensnoop

quindi esegui la panchina apache e pubblica l'output del terminale opensnoop nella domanda. Se nessuno di questi funziona, puoi provare a installare macports e quindi installare apache da lì e vedere se funziona come una soluzione (una specie di zoppo).

My Air è su Lion, ma la versione di Apache è diversa (di recente c'è stato un aggiornamento, l'hai già installato?). Sono stato in grado di verificare che ab funzioni per me:

$ 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

Grazie per la risposta @polynomial :) ab google.com/funziona anche per me, provaab -n 1000 -c 1000 google.com/
ben

@ben Ricordo di aver avuto un problema simile e ricordo che è stato risolto aggiungendo http: //? Sono su Windows Machine ora, controllerò quando torno a casa.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.