OS X'de Apache Bench test hatası: “apr_socket_recv: Eş (54) tarafından bağlantının sıfırlanması”


55

MacBook Pro 13 "'ü birkaç hafta önce Lion'a güncelledim. Apache Bench'in (apache2.2.19) çalışmadığını öğrendim. Ne olursa olsun, her zaman bu hatayı gösteriyor:

apr_socket_recv: Eş tarafından bağlantı reset (54)

Ayrıca Mac Mini'ye temiz bir kurulum yaptım ve aynı hatayı üretti.

Bunu nasıl düzeltebilirim?


Bunları da alıyorum .. Onları küçük bir Go web sunucusu ve bir Python Gevent sunucusu ile test ederken alıyorum.
Justin,

Yanıtlar:


65

-rApache Bank ile kullanırsanız , hatalardan çıkmayacağını unutmayın.

Gönderen belgeler :

-r
Soketten çıkmayın hata alırsınız.


11
Yanlış olması dışında. Sadece koşmaya çalıştım: ab -n 200 -c 20 -r http://localhostve aldım (tanrı yorum Test aborted after 10 failures apr_socket_connect(): Operation already in progress (37) Total of 4 requests completed
yapmayı yeniledi

3
ne yazık ki hala çıkıyor
DataGreed

Benim için çalıştı OS X 10.9
Willem

47

Bunun nedeni Lion ile birlikte gelen Apache yazılımındaki bir hatadır. Apache'nin (beta) daha yeni bir sürümü sorunu düzeltir. Bir ab düzeltmek için, işte adımlar:

  1. Apache'nin son sürümünü indirin

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

2.3.16 uygun değilse, http://apache.mirrors.pair.com/httpd adresine gidin ve en son bilgiyi alın.

  1. Pcre yükleyin (bunun için demlemeye ihtiyacınız var)

    $ brew install pcre
    
  2. Apache oluştur

    $ tar xzvf httpd-2.3.16-beta.tar.bz2
    $ cd httpd-2.3.16-beta
    $ ./configure
    $ make
    
  3. Yeni oluşturulan ile mevcut ab'nin üzerine yazın

    $ sudo cp support/ab /usr/sbin
    

makehttp I ne zaman alıyorum : Tanımsız semboller: "_apr_file_link", başvurulan: rotatelogs.o içinde _post_rotate ld: sembol (ler) bulunamadı 2: ld 1 çıkış durumu döndürdü make [2]: *** [rotatelogs] Hata 1 make [1]: *** [tüm-özyinelemeli] Hata 1 yapmak: *** [tüm-özyinelemeli] Hata 1 Bunu çözmek için herhangi bir ipucu?
Jonathan

Bu hala OSX 10.8.2'de bir sorun mu?
Chris Wagner

3
Ben bir node.js helloworld uygulaması kıyaslama. İlk başta Connection reset by peer (54)herhangi bir abkıyaslama için bir alıyordum . Sonra yukarıdaki düzeltmeyi yaptıktan sonra yapabilirim ab -n 100 -c 100. Sonra yapabilirdim ab -n 200 -c 100. Yapabilirim ab -n 200 -c 150... -cYukarıda aldığımda -c 200, SOMETIMES yürütür ve bazen Connection Reset by Peer (54)hata yapar. Deterministik değil. Ne yapalım?
Rakib

3
Çalıştığınızda ./configure, aşağıdakilere configure: error: C compiler cannot create executables
rastlarsanız

5

Bu bağlantıdaki homebrew aracılığıyla ab güncelleme yöntemini kullanarak benim için çalıştı.

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

2
Süper Kullanıcıya Hoşgeldiniz! Bu soruyu teorik olarak cevaplayabilse de , cevabın temel kısımlarını buraya eklemek ve referans için bağlantıyı sağlamak tercih edilir.
slhck

Ben alıyorum:Error: Download failed: http://www.apache.org/dist/httpd/httpd-2.4.2.tar.bz2
Benjamin Crouzier

@pinouchon, senaryo artık yazar tarafından daha uzun süre korunuyor olsa da, işte yeni, çalışan bir link: raw.githubusercontent.com/simonair/homebrew-dupes/… (tür:brew install "https://raw.githubusercontent.com/simonair/homebrew-dupes/e26f111d450d1a030515e1dde4e1dc4693efa78d/ab.rb")
Matt3o12

Hata: ab: Formulary için undefined yöntemi `sha1 ':: FormulaNamespacebc6d3f6af42f9cfa51e2e726dcc9ff30 :: Ab: Class @ Matt3o12
Mark Ramotowski

4

127.0.0.1Localhost yerine : kullanmayı denediniz mi?

Ayrıca http://, önünde url yazmazsam ab'im başarısız olur .


2

Mountain Lion ab v2.3 ile aynı hatayı yaşadım ve yukarıdaki cevaplardan birinin talimatı verilen brew'i ve ab'nin son sürümünü neredeyse hazırdım. Sonunda bu şekilde gitmeden önce sadece sondaki eğik çizgiyi eklemeye çalıştım .

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

Yukarıdaki mesajda, giriş URL’sinin istenen formatına dikkat edin. İsteğe bağlı bileşenler köşeli ayraçlarla işaretlenmiştir, ancak / yol bölümünün isteğe bağlı olmadığını görün . Bu yüzden, eğer kök etki alanını test ediyorsam, en azından gerçekten hileyi yapan eğik çizgiyi eklemem gerektiğini düşündüm ! Umarım bu size de yardımcı olur.

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

Test edilecek birkaç şey:

  • Güvenlik duvarının çalışıp çalışmadığını görmek için devre dışı bırakmayı deneyebilir misiniz?
  • web paylaşımını etkinleştir ve localhost'u test et / (önce bir tarayıcıda çalıştığından emin ol)

Bu çalışmaların hiçbiri bir terminal açamazsanız ve

$ sudo opensnoop

daha sonra apache bankını çalıştırın ve opensnoop terminalinin çıktısını söz konusu olduğunda kaydedin. Bunların hiçbiri işe yaramazsa, macports yüklemeyi ve ardından apache'yi oradan yüklemeyi ve bunun işe yarayıp yaramadığını görmeyi deneyebilirsiniz (bir çeşit topal).

Havam aslanda ama apache versiyonu farklı (yakın zamanda bir güncelleme vardı, daha önce yükledin mi?). Ab'nin benim için çalıştığını doğruladım:

$ 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

Cevabınız için teşekkürler @polynomial :) ab google.com/benim için de çalışır, deneyinab -n 1000 -c 1000 google.com/
ben

@ ben de benzer bir problem yaşadığımı hatırlıyorum ve http: // ekleyerek çözüldüğünü hatırlıyorum. Şimdi pencere makinesindeyim, eve geldiğimde kontrol edeceğim.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.