ข้อผิดพลาดการทดสอบ 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
Justin

คำตอบ:


65

โปรดทราบว่าถ้าคุณใช้-rกับ Apache 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
    

เมื่อฉันmakeได้รับ http: สัญลักษณ์ที่ไม่ได้กำหนด: "_apr_file_link", อ้างอิงจาก: _post_rotate ใน rotatelogs.o ld: ไม่พบสัญลักษณ์ (collects): collect2: ld ส่งคืนสถานะทางออก 1 รายการให้ [2]: *** [rotatelogs] ข้อผิดพลาด 1 ทำให้ [1]: *** [ข้อผิดพลาดทั้งหมด] เกิดข้อผิดพลาด 1: *** [ข้อผิดพลาดทั้งหมด] เกิดข้อผิดพลาด 1 เคล็ดลับใดวิธีการแก้ไขนั้น
Jonathan

นี่ยังคงเป็นปัญหาใน OSX 10.8.2 หรือไม่
Chris Wagner

3
ฉันกำลังทำการเปรียบเทียบแอป helloworld ของ node.js ตอนแรกผมก็จะได้รับการConnection reset by peer (54)ใด ๆabการเปรียบเทียบ ab -n 100 -c 100แล้วหลังจากที่ทำการแก้ไขข้างต้นผมจะทำ ab -n 200 -c 100แล้วฉันจะทำ ฉันสามารถทำab -n 200 -c 150... เมื่อฉันใช้เวลาดังกล่าว-cข้างต้น-c 200บางครั้งมันดำเนินการและบางครั้งก็เกิดConnection Reset by Peer (54)ข้อผิดพลาด มันไม่ได้ถูก จำกัด จะทำอย่างไร?
Rakib

3
เมื่อใช้งาน./configureให้ดูที่โพสต์นี้ถ้าคุณconfigure: error: C compiler cannot create executables
เจอ

5

การใช้วิธีการอัพเดต ab ผ่าน homebrew ที่ลิงค์นี้ใช้งานได้สำหรับฉัน

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

2
ยินดีต้อนรับสู่ Super User! ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
slhck

ฉันได้รับ:Error: Download failed: http://www.apache.org/dist/httpd/httpd-2.4.2.tar.bz2
Benjamin Crouzier

@pinouchon แม้ว่าสคริปต์จะได้รับการดูแลรักษาโดยผู้เขียนอีกต่อไปแล้วนี่คือลิงค์ใหม่ที่ใช้งานได้: raw.githubusercontent.com/simonair/homebrew-dupes/ (ประเภท:brew install "https://raw.githubusercontent.com/simonair/homebrew-dupes/e26f111d450d1a030515e1dde4e1dc4693efa78d/ab.rb")
Matt3o12

ข้อผิดพลาด: ab: วิธีที่ไม่ได้กำหนด `sha1 'สำหรับสูตร :: FormulaNamespacebc6d3f6af42f9cfa51e2e726dcc9ff30 :: Ab: Class @ Matt3o12
Mark Ramotowski

4

คุณลองใช้: 127.0.0.1แทนที่จะเป็น localhost ใช่ไหม

ab ของฉันก็ล้มเหลวเช่นกันถ้าฉันไม่เขียน url http://ไว้ข้างหน้า


2

ฉันมีข้อผิดพลาดเดียวกันกับ Mountain Lion ab v2.3 และเกือบจะพร้อมที่จะติดตั้ง Brew และ 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 bench และโพสต์เอาต์พุตของเทอร์มินัล opensnoop ในคำถาม หากไม่ได้ผลคุณสามารถลองติดตั้ง macports แล้วติดตั้ง apache จากตรงนั้นและดูว่ามันใช้งานได้ดีหรือไม่

My Air ใช้งานได้ดี แต่เวอร์ชัน 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

@ben ฉันจำได้ว่ามีปัญหาที่คล้ายกันและฉันจำได้ว่ามันแก้ไขได้โดยการเพิ่ม http: //? ตอนนี้ฉันอยู่บนเครื่อง windows จะตรวจสอบเมื่อฉันกลับถึงบ้าน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.