Lỗi kiểm tra băng ghế dự bị của Apache trên OS X:


54

Tôi đã cập nhật MacBook Pro 13 "lên Lion vài tuần trước. Tôi mới phát hiện ra rằng Apache Bench (apache2.2.19) không hoạt động. Nó luôn hiển thị lỗi này, bất kể là gì:

apr_socket_recv: Thiết lập lại kết nối theo ngang hàng (54)

Tôi cũng đã cài đặt sạch trên Mac Mini của mình và nó cũng bị lỗi tương tự.

Làm thế nào tôi có thể sửa lỗi này?


Tôi cũng đang nhận được những thứ này .. Tôi nhận được chúng trong khi thử nghiệm một máy chủ web Go nhỏ và với máy chủ Python Gevent.
Justin

Câu trả lời:


65

Lưu ý rằng nếu bạn sử dụng -rvới Apache Bench, nó sẽ không thoát do lỗi.

Từ tài liệu :

-r
Không thoát trên ổ cắm nhận lỗi.


11
Nó nên ngoại trừ nó sai. Tôi chỉ cố chạy: ab -n 200 -c 20 -r http://localhostvà đã nhận (chúa cấm một bình luận có dòng mới!) Test aborted after 10 failures apr_socket_connect(): Operation already in progress (37) Total of 4 requests completed
umassthrower

3
Thật không may, nó vẫn thoát
DataGreed

Làm việc cho tôi trên OS X 10.9
Willem

47

Điều này là do lỗi trong phần mềm Apache đi kèm với Lion. Một phiên bản gần đây hơn của Apache (beta) đã khắc phục sự cố. Để sửa ab, đây là các bước:

  1. Tải xuống phiên bản mới nhất của Apache

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

Nếu 2.3.16 không có sẵn, hãy truy cập http://apache.mirrors.pair.com/httpd và nhận bản mới nhất

  1. Cài đặt pcre (bạn cần pha cho việc này)

    $ brew install pcre
    
  2. Xây dựng Apache

    $ tar xzvf httpd-2.3.16-beta.tar.bz2
    $ cd httpd-2.3.16-beta
    $ ./configure
    $ make
    
  3. Ghi đè ab hiện có với ab mới được xây dựng

    $ sudo cp support/ab /usr/sbin
    

Khi tôi makehttp Tôi nhận được: Các ký hiệu không xác định: "_apr_file_link", được tham chiếu từ: _post_rotate trong rotatelogs.o ld: biểu tượng không tìm thấy coll2: ld trả về 1 trạng thái thoát [1]: *** [all-đệ quy] Lỗi 1 thực hiện: *** [all-đệ quy] Lỗi 1 Bất kỳ mẹo nào để giải quyết điều đó?
Jonathan

Đây có còn là một vấn đề trong OSX 10.8.2 không?
Chris Wagner

3
tôi đang điểm chuẩn một ứng dụng hellowworld của node.js. Lúc đầu tôi đã nhận được Connection reset by peer (54)đối với bất kỳ abđiểm chuẩn. Sau đó, sau khi thực hiện các sửa chữa ở trên, tôi có thể làm ab -n 100 -c 100. Sau đó tôi có thể làm ab -n 200 -c 100. Tôi có thể làm ab -n 200 -c 150... Khi tôi thực hiện -cở trên -c 200, SOMETIMES nó thực thi và đôi khi nó gây ra Connection Reset by Peer (54)lỗi. Nó không mang tính quyết định. Phải làm sao
Rakib

3
Khi chạy ./configure, hãy xem bài đăng này nếu bạn chạy vào configure: error: C compiler cannot create executables: stackoverflow.com/a/11712497/599391
Chiubaka

5

Sử dụng phương pháp cập nhật ab thông qua homebrew tại liên kết này có hiệu quả với tôi.

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

2
Chào mừng bạn đến với Siêu người dùng! Trong khi về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo.
slhck

Tôi đang nhận được:Error: Download failed: http://www.apache.org/dist/httpd/httpd-2.4.2.tar.bz2
Benjamin Crouzier

@pinouchon mặc dù tập lệnh hiện đang được tác giả duy trì lâu hơn, đây là một liên kết mới, hoạt động: raw.githubusercontent.com/simonair/homebrew-dupes/. (loại:brew install "https://raw.githubusercontent.com/simonair/homebrew-dupes/e26f111d450d1a030515e1dde4e1dc4693efa78d/ab.rb")
Matt3o12

Lỗi: ab: phương thức không xác định `sha1 'cho Formulary :: FormulaNamespacebc6d3f6af42f9cfa51e2e726dcc9ff30 :: Ab: Class @ Matt3o12
Mark Ramotowski

3

Bạn đã thử sử dụng: 127.0.0.1thay vì localhost?

Ngoài ra ab của tôi không thành công nếu tôi không viết url http://ở phía trước.


2

Tôi có cùng một lỗi với Mountain Lion ab v2.3, và gần như đã sẵn sàng để cài đặt brew và phiên bản ab mới nhất theo hướng dẫn của một trong những câu trả lời ở trên. Trước khi cuối cùng đi theo cách đó, tôi đã cố gắng chỉ thêm dấu gạch chéo .

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

Trong thông báo trên, hãy chú ý đến định dạng bắt buộc của URL đầu vào. Các thành phần tùy chọn được đánh dấu bằng dấu ngoặc vuông, nhưng lưu ý rằng / phần đường dẫn dường như không phải là tùy chọn. Vì vậy, tôi đã giả sử rằng nếu tôi đang kiểm tra tên miền gốc, ít nhất tôi nên thêm dấu gạch chéo , điều này thực sự đã tạo ra mánh khóe! Tôi hy vọng điều này sẽ giúp bạn.

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

Một vài điều cần kiểm tra:

  • bạn có thể thử vô hiệu hóa tường lửa xem có hoạt động không?
  • cho phép chia sẻ web và kiểm tra localhost / (trước tiên hãy đảm bảo nó hoạt động trong trình duyệt)

Nếu cả hai không hoạt động, bạn có thể mở một thiết bị đầu cuối và

$ sudo opensnoop

sau đó chạy băng ghế apache và gửi đầu ra của terminal opensnoop trong câu hỏi. Nếu không có cái nào hoạt động, bạn có thể thử cài đặt macports và sau đó cài đặt apache từ đó và xem nếu nó hoạt động như một công việc xung quanh (loại khập khiễng).

My Air là trên sư tử nhưng phiên bản apache thì khác (gần đây đã có bản cập nhật, bạn đã cài đặt chưa?). Tôi đã có thể xác minh ab làm việc cho tôi:

$ 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

Cảm ơn bạn đã trả lời @polynomial :) cũng ab google.com/hoạt động với tôi, hãy thửab -n 1000 -c 1000 google.com/
ben

@ben Tôi nhớ có vấn đề tương tự, và tôi nhớ nó đã được giải quyết bằng cách thêm http: //? Bây giờ tôi đang dùng máy windows, sẽ kiểm tra khi về đến nhà.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.