thể trùng lặp:
'ab' program freezes after lots of requests, why?Tại sao một máy chủ Thin đơn giản dừng đáp ứng tại 16500 yêu cầu khi điểm chuẩn?
Dưới đây là một máy chủ thử nghiệm đơn giản:
require 'rubygems'
require 'rack'
require 'thin'
class HelloWorld
def call(env)
[200, {"Content-Type" => "text/plain"}, "OK"]
end
end
Rack::Handler::Thin.run HelloWorld.new, :Port => 9294
#I've tried with these added too, 'rack.multithread' => true, 'rack.multiprocess' => true
Dưới đây là một thử nghiệm chạy:
$ ab -n 20000 http://0.0.0.0:9294/sdf
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 0.0.0.0 (be patient)
Completed 2000 requests
Completed 4000 requests
Completed 6000 requests
Completed 8000 requests
Completed 10000 requests
Completed 12000 requests
Completed 14000 requests
Completed 16000 requests
apr_poll: The timeout specified has expired (70007)
Total of 16347 requests completed
Nó vỡ xuống vào khoảng năm 16500. Tại sao? Làm thế nào tôi có thể tìm hiểu những gì đang xảy ra. Là GC trong ruby hay là một cái gì đó với số lượng các ổ cắm mạng có sẵn trên một máy OS X. Tôi có bộ nhớ MPB 2.5 Ghz 6G.
Sửa
Sau một số cuộc thảo luận ở đây và thử nghiệm những điều khác nhau, nó có vẻ như thay đổi net.inet.tcp.msl từ 15000 đến 1000ms làm cho vấn đề kiểm tra các máy chủ web tần số cao với ab đi.
sudo sysctl -w net.inet.tcp.msl=1000 # this is only good for local development
Xem câu hỏi được tham chiếu với câu trả lời cho vấn đề này. 'ab' program freezes after lots of requests, why?
Bạn đã tìm thấy lý do ?? Một lời giải thích tiềm năng có thể là hệ điều hành giữ một ổ cắm trong trạng thái "được sử dụng gần đây" và không sử dụng lại nó trong vài phút. Rõ ràng người ta có thể cấu hình lại lớp IP của hệ điều hành để không làm điều đó. – radiospiel
Nếu nó giúp, tôi có thể tái tạo hành vi chính xác này trên MBP của tôi. Đã hoàn tất yêu cầu 16359. Không biết nguyên nhân gây ra nó. –
Hmm, suy nghĩ to, con số này đáng ngờ gần với 16384 ... –