Помилка тесту Apache Bench в OS X: "apr_socket_recv: Скидання з'єднання одноранговим (54)"


55

Я оновив свій MacBook Pro 13 "на Lion кілька тижнів тому. Щойно я з’ясував, що Apache Bench (apache2.2.19) не працює. Це завжди показує цю помилку, незалежно від того, що:

apr_socket_recv: Скидання підключення рівними (54)

Я також зробив чисту установку на моєму Mac Mini, і це призвело до тієї ж помилки.

Як я можу це виправити?


Я теж отримую ці .. Я отримую їх під час тестування невеликого веб-сервера Go та із сервером Python Gevent.
Джастін

Відповіді:


65

Зауважте, що якщо ви користуєтесь -rApache Bench, вона не вийде з помилок.

З документації :

-r
Не виходьте з помилки отримання сокета.


11
Це має бути, крім того, що це неправильно. Я просто спробував запустити: ab -n 200 -c 20 -r http://localhostі отримав (не дай бог у коментарі є нові рядки!) Test aborted after 10 failures apr_socket_connect(): Operation already in progress (37) Total of 4 requests completed
umassthrower

3
на жаль, він все ще залишається
DataGreed

Працював для мене на OS X 10.9
Віллем

47

Це пов’язано з помилкою в програмному забезпеченні Apache, яке постачається в комплекті з Lion. Більш свіжа версія Apache (бета) виправляє проблему. Щоб виправити ab, ось такі кроки:

  1. Завантажте останню версію Apache

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

Якщо 2.3.16 недоступний, перейдіть на сторінку http://apache.mirrors.pair.com/httpd та отримайте останню версію

  1. Встановіть pcre (для цього вам потрібно заварити)

    $ brew install pcre
    
  2. Побудувати Apache

    $ tar xzvf httpd-2.3.16-beta.tar.bz2
    $ cd httpd-2.3.16-beta
    $ ./configure
    $ make
    
  3. Перезапишіть існуючий ab з новозбудованим

    $ sudo cp support/ab /usr/sbin
    

коли я makehttp, я отримую: Не визначені символи: "_apr_file_link", з посиланням на: _post_rotate в rotatelogs.o ld: символ (и) не знайдено collection2: ld повернуто 1 статус виходу make [2]: *** [rotatelogs] Помилка 1 make [1]: *** [все рекурсивна] Помилка 1 make: *** [все рекурсивна] Помилка 1 Будь-які поради, як це вирішити?
Джонатан

Це все ще проблема в OSX 10.8.2?
Кріс Вагнер

3
Я аналізую додаток nlow.js helloworld. Спочатку я отримував Connection reset by peer (54)будь-який abтест. Тоді, виконавши виправлення вище, я міг би зробити ab -n 100 -c 100. Тоді я міг би зробити ab -n 200 -c 100. Я міг би зробити ab -n 200 -c 150... Коли я беру -cвище -c 200, SOMETIMES він виконує, а іноді видає Connection Reset by Peer (54)помилку. Це недетермінованість. Що робити?
Ракіб

3
При запуску ./configure, подивіться на цей пост , якщо ви зіткнетеся configure: error: C compiler cannot create executables: stackoverflow.com/a/11712497/599391
Chiubaka

5

Використання методу оновлення ab через homebrew за цим посиланням працювало для мене.

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

2
Ласкаво просимо до Супер Користувача! Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
slhck

Я отримую:Error: Download failed: http://www.apache.org/dist/httpd/httpd-2.4.2.tar.bz2
Бенджамін Крузьє,

@pinouchon, хоча сценарій зараз підтримується автором, ось нове, робоче посилання: raw.githubusercontent.com/simonair/homebrew-dupes/… (тип:brew install "https://raw.githubusercontent.com/simonair/homebrew-dupes/e26f111d450d1a030515e1dde4e1dc4693efa78d/ab.rb")
Matt3o12

Помилка: ab: undefined method `sha1 'for Formulary :: FormulaNamespacebc6d3f6af42f9cfa51e2e726dcc9ff30 :: Ab: Class @ Matt3o12
Марк Рамотовський

4

Ви намагалися використовувати: 127.0.0.1замість localhost?

Також моя ab не вдається, якщо я не пишу URL-адресу http://спереду.


2

У мене була така ж помилка з Mountain Lion ab v2.3, і я був майже готовий до встановлення пивоваріння та останньої версії ab, як вказував один із наведених вище відповідей. Перш ніж нарешті піти цим шляхом, я спробував лише додати кінцеву косу рису .

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

У наведеному вище повідомленні зверніть увагу на необхідний формат вхідної URL-адреси. Необов’язкові компоненти позначені квадратними дужками, але зауважте, що частина / шлях, здається, не є обов'язковою. Тому я припустив, що якщо я тестую кореневий домен, я повинен хоча б додати косую косу рису , яка справді зробила фокус! Я сподіваюся, що це теж допомагає вам.

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

Дещо для перевірки:

  • ви можете спробувати відключити брандмауер будь-якого бачення, якщо це працює?
  • увімкніть веб-обмін та протестуйте localhost / (переконайтеся, що він працює у веб-переглядачі)

Якщо жодна з цих робіт не зможете відкрити термінал і

$ sudo opensnoop

потім запустіть лавку apache та опублікуйте висновок термінала opennoop у питанні. Якщо нічого з цього не працює, ви можете спробувати встановити macports, а потім встановити Apache звідти і побачити, чи це працює як робота навколо (наче кульгавий).

Моє повітря знаходиться на леві, але версія апачі інша (нещодавно було оновлення, ви вже встановили це?). Мені вдалося переконатися, що ab працює для мене:

$ 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

Дякую за відповідь @polynomial :) ab google.com/працює і для мене, спробуйтеab -n 1000 -c 1000 google.com/
бен

@ben Я пам'ятаю, що у мене була подібна проблема, і я пам'ятаю, що її вирішили, додавши http: //? Я зараз на машині Windows, перевіряю, коли повернусь додому.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.